Java问题排解

1.新安装的jdk11,竟然发现没有自动安装jre,运行程序不能运行。

2.关于eclipse Installed JREs 添加 jdk10.0.2时,提示“Target is not a JDK root. System library was not found.”的解决方案

3.java -version显示版本和JAvA_HOME配置不一样

1.新安装的jdk11,竟然发现没有自动安装jre,运行程序不能运行

解决如下:
以管理员的身份打开命令提示符cd到%JAVA_HOME%(用户安装路径)
然后运行命令binjlink.exe --module-path jmods --add-modules java.desktop --output jre
然后将自动生成了jre

2.关于eclipse Installed JREs 添加 jdk10.0.2时,提示“Target is not a JDK root. System library was not found.”的解决方案 

eclipse 版本过低不支持java新版本,更新eclipse版本即可。 Eclipse 4.9 正式发布,支持 Java 11 

https://blog.csdn.net/moakun/article/details/82919806

3.java -version显示版本和JAvA_HOME配置不一样

当你需要安装多个版本的jdk时,可能会遇到更改了JAVA_HOME后java -version不变的情况。

一般情况下,将你的JAVA_HOME改为你要用的jdk的安装路径,然后你使用的就是这个版本的JDK。但是有时候你会发现更改了JAVA_HOME后java -version不变。

可能原因: path的路径中,有的路径目录下也包含java.exe,如Oracle,是自带jdk的,本人安装的是oracle10g,oracle自带的是1.6。而path中oracle路径是在第一个的,故而优先引用oracle的jdk,故无论怎么改JAVA_HOME,甚至删除,仍旧能显示1.6版本信息。

然后该路径在%JAVA_HOME%in的前面,故运行时优先选择前面路径下的java.exe,所以无论如何改JAVA_HOME,java -version都不变

解决方法:修改JAVA_HOME后,在path的最前面添加%JAVA_HOME%in;以保证JAVA_HOME优先引用到。

疑问:为什么不改用户变量呢?因为系统优先引用系统变量中的环境变量。系统变量针对所有用户,用户变量只针对当前用户。

转载于:https://www.cnblogs.com/eastDong/p/10171313.html

原文地址:https://www.cnblogs.com/lukelook/p/13593954.html