如何在Windows中最佳设置Java路径

11

我对在Windows环境中看到的路径和Java之间的区别很好奇。如果我执行命令where java,我可以看到

C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
C:\ProgramData\Oracle\Java\javapath\java.exe
C:\Program Files\Java\jdk1.6.0_21\bin\java.exe

我发现第一个路径javapath会随着我安装的最新Java SDK而更新。但是,大部分谷歌搜索结果都告诉你要将环境变量PATH设置为最新版本,其中包含jdk的路径。

那么哪个更好,它们如何工作?例如,对于Xamarin或Android开发哪个更好?

希望有人能提供一些见解,我很感激对此的评论。现在我知道(每个人都知道)要更改Java路径,必须设置JAVA_HOME变量。我在发布后做到了这一点,但是很难回忆起任何给定时刻读过的所有内容!那么其他路径的目的是什么,为什么更新Java JRE会自动设置Java版本,而下载SDK则需要手动更新呢?


1
相关调查:https://dev59.com/BVUL5IYBdhLWcg3w88Eo#49543305 - Grault
3个回答

13
安装新版本的JRE后,路径 C:\Program Files (x86)\Common Files\Oracle\Java 似乎会更新为对应新版JRE的可执行文件。问题在于,这将是 JRE 而不是 JDK ,所以依赖JDK的程序(例如IDE)将无法启动。 以下是让其正常工作的方法:
  1. 我总是在用户变量中设置环境变量 JAVA_HOME 指向 JDK Home,并将 %JAVA_HOME%\bin 添加到 PATH 环境变量中。
  2. 有趣的是,我从系统环境变量的 Path 中删除了条目 C:\Program Files (x86)\Common Files\Oracle\Java\javapath
此方法适用于2020年8月Windows 10(1903)、Java 8u251。 :)

2
C:\Program Files (x86)\Common Files\Oracle\Java\javapath 被添加到环境变量中作为第一个条目。我将禁用自动更新。我不知道它是如何更新的。 - Davut Gürbüz
将 %JAVA_HOME%\bin 添加到 PATH 环境变量对我来说确实起作用了。 - Mehmet
我无法在我的系统环境变量中找到为管理员帐户配置的javapath。我必须像你描述的那样手动设置路径,直到“where java”仅返回正确的JDK。之后,我搜索了控制面板并找到了Java控制面板,其中包含对“javaw.exe”的引用。不知道这是否相关。 - stefan123t
有必要从路径环境变量中移除C:\Program Files (x86)\Common Files\Oracle\Java\javapath和其他Java路径,只保留**%JAVA_HOME%\bin**。 - undefined

1
在我的电脑上,C:\ProgramData\Oracle\Java\javapath文件夹中的文件曾经是符号链接到其他地方的文件。但注意到这在8u112版本或之前已经发生了改变。值得注意的是,在我当前的版本(8u171)中,两个javapath文件夹都符号链接到同一目录中的“target”文件夹。
如果我撤销c:\programdata中的东西,我会发现我的Eclipse环境停止正常工作。
但我对所有这些的历史或原因没有更多的了解。

0
我刚刚把 %JAVA_HOME%\bin 移到了 C:\Program Files (x86)\Common Files\Oracle\Java\javapath 之前,现在一切正常运行。我建议你定期检查你的环境变量和路径变量,特别是在你安装新软件后。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接