windows cmd 运行java 程序报错了 (编译通过,运行报错)
通过 java 和 javac 命令 得知,两个命令的版本不一样。因为这是因为有两个java 版本所导致的。
此时 需修改环境变量的配置。
此时我们找到 path 环境变量的配置 可以看到 配置了两个 JAVA_HOME的变量
一个JAVA_HOME 对应的是23版本,一个是后面安装的jkd8 对应的是 JAVA_HOME8这个变量,由于两者版本不一样,所以编译用的是23版本jdk ,运行java 程序走的是8版本的jdk 版本不一致导致的冲突。
解决方案:
把8版本的jdk对应的环境变量(JAVA_HOME8) 上移到 23版本(JAVA_HOME)的上面看看。保证8版本的jdk 在23版本的上面。
调整好后,点击确认。
再次运行后 发现还是报错(编译依然无问题):
此时考虑 把系统变量中的 JAVA_HOME 删除后再看看(删除后点击确认),删除jdk23版本的变量值,保留JAVA_HOME8版本变量值。
此时在进行编译后再运行看看 ,结果还是报错了
此时查看 java 和javac 版本还是不一样,此时考虑把java 8环境变量上移到第二行看看,最后点击确认。
此时到命令行发现 并无生效 两者版本还是不一样.
继续尝试 把 jdk23版本的 JAVA_HOME 变量删除再进运行看看
结果还是版本不一样,意思就是没有生效。
最后再考虑把common file 文件的环境变量删除掉(此路径对应为之前的jdk23版本)
`此时命令行 运行 javac 发现无法识别了
此时考虑把 JAVA_HOME8变量值移动到 common files 这条变量的上面,点击保存
发现还是不行,最终发现是变量格式写的有问题,重新编写环境变量配置(拆开来)最终效果如下,再运行看看。`
`最终 javac 可正常执行了!
思考..(java8版本有些配置和23版本还不太一样,貌似23版本可的环境变量值可以用; 分号连一起写。。貌似无影响 javac 可正常识别,另外这块bin的路径写绝对路径应该也是ok的)
`