Java 马科斯莫哈韦(10.14)到狮子(10.7)的爪哇之家在哪里?
Java是macOS最新版本上的可选软件包 但一旦安装,JAVA_HOME环境变量似乎设置不正确。如果安装了or, 将以下行之一添加到~/.bash_概要文件将相应地设置环境变量Java 马科斯莫哈韦(10.14)到狮子(10.7)的爪哇之家在哪里?,java,macos,Java,Macos,Java是macOS最新版本上的可选软件包 但一旦安装,JAVA_HOME环境变量似乎设置不正确。如果安装了or, 将以下行之一添加到~/.bash_概要文件将相应地设置环境变量 export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)" or export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)" or export JAVA_HOME="$(/usr/
export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
or simply
export JAVA_HOME="$(/usr/libexec/java_home)"
注意:如果您使用brew在mac上安装openjdk,请运行sudo ln-sfn/usr/local/opt/openjdk/libexec/openjdk.jdk/Library/Java/JavaVirtualMachines/openjdk.jdk以使上述功能正常工作
更新:添加了基于Jilles van Gurp的-v标志。以上内容对于我使用Amazon的EC2工具不起作用,因为它需要java_HOME下面的bin/java等/System/Library/Frameworks/JavaVM.framework/Home确实有效。在Mac OS X Lion上,为了设置visualgc运行,我使用了: 导出JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/HOME /usr/libexec/java_home不是一个目录,而是一个可执行文件。它将当前配置的JAVA_输出到主页,实际上不会更改它。这就是Java Preferences应用程序的用途,在我的例子中,它似乎已经坏了,实际上并没有正确地更改JVM。它确实列出了1.7JVM,但我可以切换/untoggle&拖放我想要的所有内容,而不需要实际更改/usr/libexec/java_home的输出 即使在Lion上安装了Oracle的1.7.0 u6并将其设置为首选项中的默认值,它仍然返回了apple 1.6 java主页。唯一对我有效的修复方法是手动设置JAVA_HOME:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
至少这样,当从命令行运行时,它将使用1.7/usr/libexec/java_home仍然坚持1.6
更新:对如何工作有更好的解释
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
就是这样做的。请注意,将其更新为1.8很好。更好、更可升级的方法是使用以下内容:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
这应该也适用于AWS,因为它在家的下面有垃圾桶这个答案与山狮有关,而不是狮子。我需要为AWS命令行工具执行此操作。根据,运行哪个java返回/usr/bin/java
因此,我在我的.bashrc中设置了JAVA_HOME=/usr
显然,/usr/bin/java是指向/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java的符号链接,这使得所有这些都可以工作
更新
如下面的评论所述,当JAVA_HOME环境变量将由AWS命令行工具以外的其他工具使用时,此JAVA_HOME值不是理想的解决方案。不过,对于AWS命令行工具来说,它工作得很好,正如它们的文档中所给出的。对于我,Mountain Lion 10.8.2,大多数人投票的解决方案不起作用。 我通过Oracle和maven从自制软件中安装了JDK1.7 我的解决方案来自hadoop的hadoop-env.sh文件,我也是从自制软件安装的。 我在~/.bash_配置文件中添加了下面的句子,效果很好
export JAVA_HOME="$(/usr/libexec/java_home)"
此解决方案也适用于从Oracle安装Java 1.8的OS X Yosemite。在升级Mac OS后,我也遇到了同样的问题,以下几点对我有效: cmd>vi~/.bash_配置文件 添加/更新JAVA_HOME的行: 导出JAVA_HOME=/Library/JAVA/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/HOME cmd>source~/.bash_配置文件或打开新终端
我认为jdk版本可能有所不同,因此只需使用您在/Library/Java/JavaVirtualMachines/下的版本即可。较新的Oracle JVM(如1.7.0_21-b12)似乎安装在这里: /Library/Internet\plugins/JavaAppletPlugin.plugin/Contents/Home我的方法是: 巴什尔先生
export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME
# -- optional
# export PATH=$JAVA_HOME/bin:$PATH
这使得在Mac OS X 10.9的J6和J7之间切换非常容易。我从Oracle安装了最新版本的JRE,然后将JAVA_HOME重置为/Library/JAVA/JavaVirtualMachine/jdk1.7.0_45.jdk/Contents/HOME 我相信有更好的方法,但它让我振作起来 hughsmac:~hbrien$echo$javau HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home对于OS X,您可以执行以下操作:
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/java_home`
以下几点对我有用。我在OSX Yosemite上使用ZSH,安装了Java8 以下命令/usr/libexec/java_home发出到JDK home的路径: /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 在~/.zshrc中
如果您需要在Mac OS X Yosemite下拥有多个JDK版本,那么添加一些脚本以在它们之间自动切换可能会有所帮助 您要做的是编辑~/.bash_配置文件并添加以下内容:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
该脚本所做的是首先删除路径中的其他JDK版本,以便它们不会干扰我们的新JDK版本。然后它巧妙地使用了/usr/libexec/java_home,这是一个列出已安装JDK版本的命令。v参数告诉java_home返回所提供版本的JDK路径,例如1.7。我们还更新路径以指向新找到的JAVA_主目录的bin目录。最后,我们可以使用
setjdk 1.7
选择最新安装的JDK版本的1.7分支。要选择特定的版本,只需执行
setjdk 1.7.0_51
相反。运行/usr/libexec/java_home-V以获取有关如何选择版本的更多详细信息
另外,保存~/.bash_配置文件后,请不要忘记对其进行源代码生成。OSX Yosemite、ZSH和Java SE运行时环境8,我必须: $sudo ln-s/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/System/Library/Frameworks/JavaVM.framework/Versions/Current/bin 在~/.zshrc中将JAVA_HOME更改为 为mac用户导出JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/Current。 Java8应该添加
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
java 6:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
# JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
参考:对于Mac Yosemite
JDK 1.7.0_xx正在使用
$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
上面的答案对我都没有帮助。我想所有的答案都是针对较旧的OSX的 对于OS X Yosemite 10.10,请执行以下步骤 使用您喜爱的文本编辑器打开:~/.bash\u配置文件 在文件中添加以下行并保存它:后跟x表示vim:
export JAVA_HOME=$(/usr/libexec/java_home)
然后在终端中键入以下两个命令以查看输出:
$ source ~/.bash_profile
$ echo $JAVA_HOME
在第二行中,您正在更新.bash_配置文件的内容。从澳大利亚税务局ATO使用AUSKEY的任何人都应该卸载AUSKEY。 这解决了我的JAVA_家庭问题
MAC用户也不再需要它。耶 更新Java 9和一些整洁的别名 在.bash_配置文件中: 导出JAVA_HOME8=`/usr/libexec/JAVA_home-version 1.8` 导出JAVA_HOME9=`/usr/libexec/JAVA_home-version 9` 请注意,对于最新版本,它是9,而不是1.9 设置活动Java: 导出JAVA\u HOME=$JAVA\u HOME8 导出路径=$JAVA_HOME/bin:$PATH 在不同版本之间切换的一些附加别名: 别名j8='export JAVA\u HOME=$JAVA\u HOME8;导出路径=$JAVA_HOME/bin:$PATH' 别名j9='export JAVA\u HOME=$JAVA\u HOME9;导出路径=$JAVA_HOME/bin:$PATH' 终端测试: %j8 %java版本 java版本1.8.0_121 JavaTM SE运行时环境构建1.8.0_121-b13 Java HotSpotTM 64位服务器VM构建25.121-b13,混合模式 %j9 %java版本 java版本9 JavaTM SE运行时环境构建9+181 Java HotSpotTM 64位服务器VM构建9+181,混合模式 编辑:Java10的更新 导出JAVA_HOME10=`/usr/libexec/JAVA_home-version 10` 别名j10='export JAVA\u HOME=$JAVA\u HOME10;导出路径=$JAVA_HOME/bin:$PATH' 编辑:Java11的更新 导出JAVA_HOME11=`/usr/libexec/JAVA_home-version 11` 别名j11='export JAVA_HOME=$JAVA_HOME11;导出路径=$JAVA_HOME/bin:$PATH' 我在High Sierra 10.13.4上使用shell,并通过Brew安装Java 它不是自动设置的,因此要在我运行的系统上设置它:
set -U JAVA_HOME (/usr/libexec/java_home)
只需在netbeans.conf文件中设置1.8 jdk版本的java_主页: 取消注释行:
netbeans_jdkhome="path/to/jdk"
并设置1.8 jdk的路径,在我的例子中:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
这种方法使您可以在macOS Mojave 10.14.1和JAVA 11.0.1的macOS上拥有多个jdk版本 我将配置文件设置为
export JAVA_HOME=$(/usr/libexec/java_home)
输入此终端以确认:
$JAVA_HOME/bin/java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
我必须明确地将它设置为Macbook air上的确切路径 以下步骤: 尝试回显$JAVA_HOME如果设置了,它将显示路径,如果没有,尝试使用sudo find/usr/-name*jdk搜索它 使用-sudo nano~/.Bash_配置文件编辑Bash p 使用上面步骤2中的路径添加到JAVA Home的确切路径 导出JAVA_HOME=/Library/JAVA/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/HOME 保存并退出 使用-echo$JAVA\u Home检查JAVA\u Home
我在Macbook Air上运行MACOS MOJAVE-10.14.2 18C54,并带有JAVA 8,适用于Mac上的Fish终端用户我相信它也可以在Linux上使用,这应该可以工作:
set -Ux JAVA_8 (/usr/libexec/java_home --version 1.8)
set -Ux JAVA_12 (/usr/libexec/java_home --version 12)
set -Ux JAVA_HOME $JAVA_8 //or whichever version you want as default
对于Java 11 JDK 11,可以使用以下命令找到它:
/usr/libexec/java_home -v 11
很高兴知道。我不得不说,我对《狮子》的特写列表不太感兴趣。在我的使用中,似乎没有太多的增强功能……这对我不起作用/System/Library/Frameworks/JavaVM.framework/Home-worked.也适用于Maverick!为什么/usr/libexec/java_home-V没有显示我刚刚安装的java 1.8,并且可以在/Library/Internet plugins/JavaAppletPlugin.plugin/Contents/home/binforjava 11和High Sierra,export java_home=$/usr/libexec/java_home-V 11I没有收到你的建议:这与export java_home=/usr/libexec/java_home有何不同?命令/usr/libexec/java_home返回/System/Library/java/JavaVirtualMachines/1.6.0.jdk/Contents/homeforvisualgc/usr/libexec/java_home:在:/usr/libexec/java_home找到的java.exe不在jdk目录中。请设置并导出JVMSTAT_JAVA_HOME环境变量,以引用包含Sun J2SE 1.5.0 JDK而非JRE的目录,然后重试。是否为lion?你是从苹果公司得到正式的Java软件包,还是从Oracle得到Java6/7?我相信这是苹果公司的Java软件包。@AndrewH是的,我发现也是这样。安装了Apple的Java包并发现了实际的库路径,例如,在eclipse.ini:/Sy中设置-vm
stem/Library/Java/Support/Deploy.bundle/Contents/Home/lib/javaws.jar感谢您提供的信息。也许我太简单了,但是为什么OSX会把这么简单的事情弄得一团糟呢?我有点不同意那种说法:更可升级的/usr/libexec/java_home是一个返回路径的exe,而不是一个固定路径。除了取决于您使用的jvm版本之外,上面的路径也不匹配。重点是,/usr不是正确的JAVA_主目录。可以定位bin/java。但是有时候,构建者ant使用JAVA_HOME引用lib/tools.jar中的javac编译器,您的解决方案将因thoseAh而失败,感谢您提供的信息。你是对的。将更新答案。如果您从苹果安装了Java6,它会起作用。这里的要点是您使用的是oracle java 7。这对我来说在Mavrick上非常有效,但是java_主脚本的位置不同。export JAVA_HOME=$/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/JAVA_HOME我试图在mac Yosemite上安装maven,这种设置JAVA_HOME的方法对我有效。在Sierra 10.12和JAVA 8上对我有效-而且/usr/libexec/JAVA_HOME工具对这些JAVA版本返回一个错误。这是下载v1.7 JRE后对我有效的唯一答案。这是安装JRE的路径。大多数评分答案和评论都是关于JDK的。不一样。@Adonissum你找到解决方案了吗?在新安装的Mavericks上,这是唯一对我有效的解决方案。必须按照建议将sqldeveloper指向位于此处的jdk主页才能使其工作。注意,HFS+不区分大小写。这与建议的解决方案有何不同?与建议的解决方案没有什么不同。此解决方案专门针对使用ZSH、Java 8和OSX Yosemite的用户。确认在OSX Yosemite上安装了Java 1.8,效果很好,干杯,伙计。一般解决方案对Java 8、ZSH和Yosemite都很好。我想我得到了你的pb-你使用引号而不是反引号'vs`不,我使用了正确的引号,而不是尝试了复制粘贴,它不起作用。我更新了我的答案,因为它对我有用。@OlivierRefalo我可以看到你用双引号更新了你的答案。但即使没有引用,它也能起作用。非常感谢。在约塞米蒂10.10这是唯一有效的解决方案。通过任何其他解决方案添加路径,将临时添加,直到终止终端,路径消失。要永久添加,路径必须保存在.bash_配置文件中。同时,为了简单起见,我使用了nano而不是vim。你能添加更多信息使这个答案变得有用吗。Mac Sierra I've/Library/Java/JavaVirtualMachines上可能存在重复,它有jdk和System Preferences>Java这两个版本之间有什么不同?不同的问题,谢谢,不要低估Java安装没有正确完成的可能性。如果以下建议都不管用,请尝试[重新]安装!blog.hgomez.net/2012/07被破坏了,但在现在链接到export JAVA_HOME=/usr/libexec/JAVA_HOME-v1.8Works的答案中已经修复。泰
/usr/libexec/java_home -v 11