我正处于安装JDK的情况,但我无法在浏览器中运行applet(我可能没有安装JRE)。
但是,当我安装JRE时,它会破坏我的JDK作为默认运行时。这几乎打破了所有东西(Eclipse,Ant) - 因为它们需要服务器JVM。
这些天没有JAVA_HOME
环境变量 - 它似乎只是使用了一些注册表魔法(设置系统路径也没用)。以前,在我用它来恢复JDK之后,我刚刚卸载了JRE。这次我想正确修复它。
这也体现了jre autoupdater - 曾几何时,我有一个JDK和JRE的工作设置,但它更新并破坏了一切。
答案 0 :(得分:40)
这对Windows来说有点痛苦。这就是我的工作。
安装最新的Sun JDK,例如 6u11 ,在c:\install\jdk\sun\6u11
之类的路径中,然后让安装程序在默认位置(c:\program files\blah
)安装公共JRE。这将为大多数事情设置默认的JRE。
根据需要安装较旧的JDK,例如c:\install\jdk\sun\5u18
中的 5u18 ,但不安装公共JRE。
在开发中,我有一个小批处理文件,用于为每个JDK版本设置命令提示符。基本上只需设置JAVA_HOME=c:\jdk\sun\JDK_DESIRED
,然后设置PATH=%JAVA_HOME%\bin;%PATH%
。这将把所需的JDK放在路径中,Ant和Maven等任何辅助工具都可以使用JAVA_HOME
变量。
路径很重要,因为大多数公共JRE安装都会在c:\WINDOWS\System32\java.exe
放置一个链接的可执行文件,通常会覆盖大多数其他设置。
答案 1 :(得分:6)
我已在属性对话框中修改了我的eclipse启动快捷方式的行为
来自
"E:\Program Files\eclipse\eclipse.exe"
到
"E:\Program Files\eclipse\eclipse.exe" -vm "E:\Program Files\Java\jdk1.6.0_30\bin"
所述
它只是一个补丁,因为它取决于修复事物的快捷方式......
另一种方法是在eclipse初始化文件中永久设置参数。
答案 2 :(得分:2)
我刚遇到这个问题(Java 1.8与Windows 7上的Java 9),我的发现是:
简短版
默认似乎是(因为路径条目)
c:\ProgramData\Oracle\Java\javapath\java -version
选择你想要的版本(测试,在cmd中使用标签完成,不确定这些数字代表什么),我有2个选项,详见较长版本
c:\ProgramData\Oracle\Java\javapath_target_[tab]
删除联结/链接并链接到您的版本(在我的Java 8案例中以181743567结尾)
rmdir javapath
mklink /D javapath javapath_target_181743567
较长版本:
在Java 9无效后重新安装Java 1.8。安装顺序是jdk1.8.0_74,jdk-9.0.4并尝试使用jdk1.8.0_162使Java 8默认...
安装jdk1.8.0_162之后我还有
java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
我在路径中看到的是
Path=...;C:\ProgramData\Oracle\Java\javapath;...
所以我检查了那是什么,我发现它是一个交汇点(链接)
c:\ProgramData\Oracle\Java>dir
Volume in drive C is OSDisk
Volume Serial Number is DA2F-C2CC
Directory of c:\ProgramData\Oracle\Java
2018-02-07 17:06 <DIR> .
2018-02-07 17:06 <DIR> ..
2018-02-08 17:08 <DIR> .oracle_jre_usage
2017-08-22 11:04 <DIR> installcache
2018-02-08 17:08 <DIR> installcache_x64
2018-02-07 17:06 <JUNCTION> javapath [C:\ProgramData\Oracle\Java\javapath_target_185258831]
2018-02-07 17:06 <DIR> javapath_target_181743567
2018-02-07 17:06 <DIR> javapath_target_185258831
那些哈希不响铃,但当我检查时
c:\ProgramData\Oracle\Java\javapath_target_181743567>.\java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
c:\ProgramData\Oracle\Java\javapath_target_185258831>.\java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
所以为了使Java 8再次默认,我不得不删除here
所述的链接rmdir javapath
并使用Java重新创建我想要的
mklink /D javapath javapath_target_181743567
测试:
c:\ProgramData\Oracle\Java>java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
** update(Java 10)**
使用Java 10它是类似的,只有javapath在c:\ Program Files(x86)\ Common Files \ Oracle \ Java \这是奇怪的,因为我安装了64位恕我直言
.\java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
答案 3 :(得分:1)
我只需安装我需要的所有JDK版本,最新安装成为默认版本,所以我只需重新安装我想要的默认版本。
答案 4 :(得分:0)
我在C:\Java
中安装了几个JDK(1.4,1.5,1.6)及其JRE。然后我让Sun在C:\Program Files\Java
更新公共JRE
最近有一个改进,安装在jre6。以前,每个新版本(1.5.0_4,1.5.0_5等)都有一个不同的文件夹,占用了大量空间
答案 5 :(得分:0)
运行.jar应用程序的另一种方法是为其创建.bat cmd。 例如,您在计算机上安装了jre10和jre8,而jre10是默认的jre。 但您的jar已指定可与jre8配合使用,则可以使用以下cmd进行操作:
"C:\Program Files\Java\jre1.8.0_181\bin\java.exe" -jar JabRef-4.3.1.jar
答案 6 :(得分:0)
需要从环境中删除C:\ Program Files(x86)\ Common Files \ Oracle \ Java \ javapath并替换为JAVA_HOME,对我来说很好
答案 7 :(得分:0)
此问题堆叠起来,并已在 2020 和 Windows 10 中解决。我正在使用 Java 8 RE 和 14.1 JDK ,并且在 Eclipse 升级到版本 2020-09 之前,它一直运行良好。此后,我无法运行Eclipse ,因为它需要使用 Java 11 或更高版本,并且只能找到 8 版本。这是因为环境变量“ 路径”的顺序:
我认为C:\Program Files (x86)\Common Files\Oracle\Java\javapath
是链接到已安装的JRE exe文件(在我的情况下为 Java 8 )的路径,并且通过在%JAVA_HOME%
之后向下移动此链接解决了该问题,会导致 Java 14.1 / bin 文件夹。
在请求可执行文件时,环境变量的顺序似乎会影响搜索到的文件夹的顺序。 感谢您的评论或更好的解释。