首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多个java版本JDK1.8和JDK10之间切换

在多个java版本JDK1.8和JDK10之间切换
EN

Stack Overflow用户
提问于 2018-05-09 09:04:35
回答 4查看 2.9K关注 0票数 4

一旦我安装了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,请提供帮助。

复制问题的步骤:

  1. 安装jdk 8
  2. 安装jdk 10
  3. 如果不卸载jdk 10将java主页和路径从命令提示符检查java版本更改为jdk 8,它将显示jdk 8 。
    1. 现在,通过双击桌面尝试运行一个可执行的jar。这将需要jdk 10,这就是问题所在。

注意:,这不是一个重复的帖子。在jdk6或7或8之间有一些帖子,但jdk 10没有。JDK 10也没有附带来自oracle的zip发行版,它只作为可安装的文件提供。

EN

回答 4

Stack Overflow用户

发布于 2018-05-09 09:53:43

通常,您的路径已经包含了对%JAVA_HOME%\bin的引用(例如在Windows上),因此将它再次添加/追加到路径中将不会产生任何影响。您可以通过删除现有引用来修复路径,也可以在新设置前面添加。

在窗户上:

代码语言:javascript
复制
C:\>set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_1.41
C:\>set PATH=%JAVA_HOME%\bin;%PATH%

现在,前面的引用仍然在路径上,但是经过新的引用之后,它就会被忽略。

票数 1
EN

Stack Overflow用户

发布于 2018-05-09 10:14:32

没有正式的“系统jdk”这样的东西。当双击一个文件时,是文件关联决定了哪个程序用于打开该文件。如何定义文件关联取决于您的操作系统。例如,在Windows上,有两个存储文件关联的地方。第一个在HKLM\Classes下的注册表中,命令行使用它,但是它可以被特定于Windows的关联覆盖。当您每次切换JDK时,更改.jar文件的文件关联可能并不值得。相反,只需转到命令行并键入java -jar myapp.jar。然后,它将采用您在java上定义的任何PATH版本。

票数 1
EN

Stack Overflow用户

发布于 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。

代码语言:javascript
复制
# 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 -)"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50249466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档