Java 10环境下Maven运行报错:Files\Java\jdk-10""=="" was unexpected at this time
解决Maven因JAVA_HOME带引号导致的语法错误
你的问题根源很清晰——你给JAVA_HOME环境变量加了双引号,而Maven的Windows批处理脚本在解析这个带引号的变量时会出现语法冲突,才抛出了Files\Java\jdk-10""=="" was unexpected at this time.的错误。
我给你一步步梳理解决方法:
修改JAVA_HOME环境变量
打开系统环境变量设置,找到JAVA_HOME,把它的值从"c:\Program Files\Java\jdk-10"改成c:\Program Files\Java\jdk-10——直接去掉前后的双引号就行。Windows系统会自动处理带空格的路径,不需要额外加引号。重启命令提示符窗口
已经打开的CMD窗口不会自动加载新的环境变量配置,所以必须关闭所有现有窗口,重新打开一个新的命令提示符。验证配置是否生效
在新的CMD窗口里执行以下命令,确认配置正确:echo %JAVA_HOME% # 预期输出:c:\Program Files\Java\jdk-10(不带引号)%JAVA_HOME%\bin\javac.exe --version # 预期输出:javac 10重新尝试Maven命令
现在再执行mvn package或者mvn --help,应该就能正常运行了。
为什么会出现这个错误?
Windows批处理脚本在处理变量时,如果变量本身带引号,当脚本内部再次用引号包裹这个变量时,就会形成""c:\Program Files\Java\jdk-10""这种无效的语法结构,这就是错误的直接原因。去掉JAVA_HOME的引号后,脚本就能正确解析路径了。
内容的提问来源于stack exchange,提问作者Pablo Fernandez
相关产品推荐
相关产品推荐

