如何设置默认的Java安装/运行时(Windows)?

时间:2009-02-15 21:54:52

标签: java windows installation runtime

我正处于安装JDK的情况,但我无法在浏览器中运行applet(我可能没有安装JRE)。

但是,当我安装JRE时,它会破坏我的JDK作为默认运行时。这几乎打破了所有东西(Eclipse,Ant) - 因为它们需要服务器JVM。

这些天没有JAVA_HOME环境变量 - 它似乎只是使用了一些注册表魔法(设置系统路径也没用)。以前,在我用它来恢复JDK之后,我刚刚卸载了JRE。这次我想正确修复它。

这也体现了jre autoupdater - 曾几何时,我有一个JDK和JRE的工作设置,但它更新并破坏了一切。

8 个答案:

答案 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%。这将把所需的J​​DK放在路径中,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"

in the Eclipse documentation

所述

它只是一个补丁,因为它取决于修复事物的快捷方式......

另一种方法是在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 版本。这是因为环境变量“ 路径”的顺序:

environment variables setting

我认为C:\Program Files (x86)\Common Files\Oracle\Java\javapath是链接到已安装的JRE exe文件(在我的情况下为 Java 8 )的路径,并且通过在%JAVA_HOME%之后向下移动此链接解决了该问题,会导致 Java 14.1 / bin 文件夹。

EV setting after edit

在请求可执行文件时,环境变量的顺序似乎会影响搜索到的文件夹的顺序。 感谢您的评论或更好的解释。