一旦我安装了JDK 8和jdk 10,jdk版本10就被配置为system。即使我将JAVA_HOME更改为jdk 8的路径,系统jdk也不会改变。在更改路径和JAVA_HOME后,如果我在命令提示符中检查java版本,它将显示jdk 8。但如果双击可执行的jar文件,则需要系统jdk,即jdk 10。
我尝试更改注册表以编辑系统jdk路径和版本,但没有工作。
从配置java中,我只能看到配置为system和不可编辑的jdk 10。
如果您能够将jdk版本切换为system,请提供帮助。
复制问题的步骤:
注意:,这不是一个重复的帖子。在jdk6或7或8之间有一些帖子,但jdk 10没有。JDK 10也没有附带来自oracle的zip发行版,它只作为可安装的文件提供。
发布于 2018-05-09 09:53:43
通常,您的路径已经包含了对%JAVA_HOME%\bin的引用(例如在Windows上),因此将它再次添加/追加到路径中将不会产生任何影响。您可以通过删除现有引用来修复路径,也可以在新设置前面添加。
在窗户上:
C:\>set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_1.41
C:\>set PATH=%JAVA_HOME%\bin;%PATH%现在,前面的引用仍然在路径上,但是经过新的引用之后,它就会被忽略。
发布于 2018-05-09 10:14:32
没有正式的“系统jdk”这样的东西。当双击一个文件时,是文件关联决定了哪个程序用于打开该文件。如何定义文件关联取决于您的操作系统。例如,在Windows上,有两个存储文件关联的地方。第一个在HKLM\Classes下的注册表中,命令行使用它,但是它可以被特定于Windows的关联覆盖。当您每次切换JDK时,更改.jar文件的文件关联可能并不值得。相反,只需转到命令行并键入java -jar myapp.jar。然后,它将采用您在java上定义的任何PATH版本。
发布于 2018-05-09 12:15:17
根据您所在的平台,通常有指向目录的PATH环境。先在那里的任何东西都会被利用。因此,在linux上,它将获取安装在/usr/bin中的任何java可执行文件以及它们指向的任何jvm。
你可以通过使用绝对路径来绕过它。许多用于java的命令行软件仍然依赖于JAVA_HOME来确定jvm在哪里(例如gradle),因此您也可以使用它。
最后,在linux和osx上,您可以使用例如jenv来控制使用哪个jvm。您还可以通过插件(默认情况下关闭)来管理JAVA_HOME。
这就是我在我的mac电脑上的.bash_profile。类似的东西也应该适用于linux和windows。
# brew install jenv, install some jdks and make sure jenv knows where they are, and run this once to get jenv to export JAVA_HOME:
# jenv enable-plugin export
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"https://stackoverflow.com/questions/50249466
复制相似问题