在Apache NetBeans中创建Maven Java Web项目失败:protocol_version致命警报
解决NetBeans创建Maven Java Web项目时的
protocol_version错误 Hey,这个问题我之前帮好几个开发者解决过,本质是TLS协议版本不兼容的问题——Maven中央仓库现在已经彻底停用了老的TLS 1.0/1.1协议,而你的Java环境默认没启用足够新的TLS版本,导致握手失败。下面是几种靠谱的解决办法:
方法1:升级Java版本到8及以上(推荐)
Java 7及更早版本默认不强制启用TLS 1.2,而Maven中央仓库已经不再支持这些老协议了。升级到Java 8或更高版本是一劳永逸的方案:
- 下载并安装JDK 8或更新的版本(比如JDK 11、17,都是长期支持版)
- 在NetBeans中配置新JDK:
- 打开NetBeans,点击顶部菜单栏的
Tools->Java Platforms - 点击
Add Platform,找到你新安装的JDK路径,完成添加 - 将新添加的JDK设置为默认平台(选中后点击
Set as Default)
- 打开NetBeans,点击顶部菜单栏的
- 同时确认Maven使用的JDK:点击
Tools->Options->Java->Maven,确保Java Platform选择的是刚才升级的JDK
方法2:强制老版本Java启用TLS 1.2(仅临时方案)
如果暂时无法升级Java,可以修改Java的安全配置来强制启用TLS 1.2:
- 找到你的Java安装目录,定位到
jre/lib/security/java.security文件(如果是JDK,路径是jdk/jre/lib/security/java.security) - 打开这个文件,找到
jdk.tls.disabledAlgorithms这一行,把其中的TLSv1、TLSv1.1从禁用列表中移除 - 或者在文件末尾添加一行:
jdk.tls.client.protocols=TLSv1.2 - 保存文件后,重启NetBeans和Maven,再尝试创建项目
方法3:检查Maven镜像配置
如果你使用了自定义的Maven镜像(比如公司私有仓库):
- 确认镜像地址是HTTPS协议,并且服务器支持TLS 1.2及以上版本
- 打开你的Maven配置文件
settings.xml(通常在~/.m2/settings.xml或NetBeans配置的Maven路径下),检查<mirrors>中的镜像地址是否符合要求,避免使用HTTP协议的仓库
验证步骤
可以先打开命令行,运行以下命令确认当前Java和Maven的环境:
java -version:查看当前默认Java版本mvn -v:查看Maven使用的Java版本,确保和你配置的一致
内容的提问来源于stack exchange,提问作者libero




