问答中心分类: JAVAmacOS Mojave(10.14)到Lion(10.7)的JAVA\u主页在哪里?
0
匿名用户 提问 7小时 前

Java是macOS最新版本上的可选软件包。
然而,一旦安装,它看起来就像JAVA\u主页环境变量为未正确设置.

25 Answers
0
Jilles van Gurp 回答 7小时 前

/usr/libexec/java_home不是目录,而是可执行文件。它将当前配置的JAVA\u输出到主页,实际上不会对其进行更改。这就是Java Preferences应用程序的用途,在我的例子中,它似乎是坏的,实际上并没有正确地更改JVM。它确实列出了1.7 JVM,但我可以切换/取消切换&拖放我想要的所有内容,而不需要实际更改/usr/libexec/java_home.
即使在Lion上安装了Oracle的1.7.0 u6并将其设置为首选项中的默认值,它仍然返回了apple 1.6 java主页。唯一对我有效的修复方法是手动设置JAVA\u主页:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/

至少这样,当从命令行运行时,它将使用1.7。/usr/libexec/java_home仍然坚持1.6。
使现代化:从OSX上的命令行了解Java对其工作原理有更好的解释。

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

就是这样做的。注意,将其更新为1.8就可以了。

Matt C 回复 7小时 前

博客hgomez公司。net/2012/07被打破但是答案中已修复,现在链接到网状物档案文件org/web/20140813164713/http://blog.hgomez.net/blog/…

Leo Nguyen 回复 7小时 前

export JAVA\u HOME=“/usr/libexec/JAVA\u HOME-v 1.8”

0
onpduo 回答 7小时 前

对于我,山狮10.8.2,大多数人投票的解决方案不起作用。
我的解决方案来自hadoop环境。hadoop的sh文件,也是我从自制软件安装的。

export JAVA_HOME="$(/usr/libexec/java_home)"

此解决方案也适用于从Oracle安装Java 1.8的OS X Yosemite。

Olivier Refalo 回复 7小时 前

如果您从苹果安装了java 6,它就会工作。这里的要点是,您正在使用oracle java 7。

Christopher Frost 回复 7小时 前

这对我来说在Mavricks上非常有效,但java\u主脚本的位置不同。export JAVA_HOME="$(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home)"

Alocus 回复 7小时 前

我试图在mac Yosemite上设置maven,这样可以为我设置JAVA\u HOME works。

Kanak Sony 回复 7小时 前

在Sierra 10.12和Java 8上为我工作

0
Giri 回答 7小时 前

以上所有答案对我都没有帮助。我想所有的答案都是针对老年人的OS X
对于OS X Yosemite 10.10,请执行以下步骤
使用您喜爱的文本编辑器打开:~/.bash_profile

//This command will open the file using vim
$ vim ~/.bash_profile

在文件中添加以下行并保存它(:后跟“x”表示vim):

export JAVA_HOME=$(/usr/libexec/java_home)

然后在终端中键入以下两个命令以查看输出:

$ source ~/.bash_profile

$ echo $JAVA_HOME

在第二行中,您正在更新.bash_profile文件

Olivier Refalo 回复 7小时 前

我想我得到了你的pb-你使用引号而不是反引号的vs`

Giri 回复 7小时 前

不,我使用了正确的引号,相反,我尝试了复制粘贴,但没有成功。我更新了我的答案,因为它对我有用。

Giri 回复 7小时 前

@OlivierRefalo我可以看到你已经用双引号(“)更新了你的答案。但即使没有引号,它也能工作。

Vijay 回复 7小时 前

谢谢。对我来说,在约塞米蒂10.10

Nadeem Jamali 回复 7小时 前

这是唯一有效的解决方案。通过任何其他解决方案添加路径,将临时添加,直到终止终端,路径消失。要永久添加,路径必须保存在中。bash\u配置文件。同时,为了简单起见,我使用了nano而不是vim。

0
Peter Keller 回答 7小时 前

更新Java 9和一些整洁的别名。
在里面.bash_profile:

export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`

请注意,对于最新版本9而不是1.9.
设置活动Java:

export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH

在不同版本之间切换的其他别名:

alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'

终端测试:

% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

编辑:更新Java 10

export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'

编辑:更新Java 11

export JAVA_HOME11=`/usr/libexec/java_home --version 11`
alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH'
0
user92923user92923 回答 7小时 前

上述内容在我使用Amazon的EC2工具时不起作用,因为它期望bin/java底部等JAVA_HOME./System/Library/Frameworks/JavaVM.framework/Home确实有效。

Olivier Refalo 回复 7小时 前

是狮子吗?您是从Apple获得正式Java软件包,还是从Oracle获得Java6/7?

user92923 回复 7小时 前

我相信这是苹果的Java软件包。

noogrub 回复 7小时 前

@安德烈:是的,我发现这也是真的。安装了Apple的Java包并发现了实际的库路径(例如,在eclipse.ini中设置-vm):/System/library/Java/Support/Deploy。bundle/Contents/Home/lib/javaws。罐子

Kuberchaun 回复 7小时 前

谢谢你的信息。也许我太简单了,但为什么苹果操作系统会把这么简单的事情弄得一团糟呢?