![](/img/trans.png)
[英]Error: JAVA_HOME is not set and could not be found. How to set JAVA_HOME permanently in Hadoop?
[英]How to set JAVA_HOME in Mac permanently?
我试图通过在终端输入export JAVA_HOME=/Library/Java/Home
来设置JAVA_HOME
。 它为当前会话设置JAVA_HOME
。
如何永久设置?
您可以使用/usr/libexec/java_home -v <version you want>
获取JAVA_HOME
所需的路径。 例如,要获取 1.7 JDK 的路径,您可以运行/usr/libexec/java_home -v 1.7
,它将返回 JDK 的路径。 在您的.profile
或.bash_profile
添加
export JAVA_HOME=`/usr/libexec/java_home -v <version>`
你应该很好。 或者,尝试说服您使用的 Java 工具的维护者使用此方法来获取他们需要的版本。
要打开“.bash_profile”,请在终端中输入以下内容:
nano ~/.bash_profile
并将以下行添加到文件中:
export JAVA_HOME=`/usr/libexec/java_home -v <version>`
按 CTRL+X 退出 bash。 按“Y”保存更改。
要检查路径是否已添加,请在终端中键入以下内容:
source ~/.bash_profile
echo $JAVA_HOME
我在 MAC Catalina 中遇到了同样的问题,如果我编辑 .bash_profile 我发现 export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home 但是当我运行终端 echo $JAVA_HOME 它返回空, 后来我发现文件 .zshrc 丢失了我用
touch .zshrc
然后通过nano .zshrc
编辑它并写入
source ~/.bash_profile
这永久解决了我的问题
在 Mac 上设置 Java 路径:
点击I插入文本并使用下面的文本设置JAVA_HOME和PATH
导出路径=$JAVA_HOME/bin:$PATH
在macOS 11 Big Sur
上安装 Java:
JDK
(约 190 MB),这会将OpenJDK11U-jdk_x64_mac_hotspot_11.0.9_11.pkg
文件放入~/Downloads folder
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk
java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
JAVA_HOME
是一个重要的环境变量,正确使用它很重要。 这是一个技巧,即使在安装了 Java 更新之后,我也可以使环境变量保持最新。 在~/.zshrc
,我像这样设置变量: export JAVA_HOME=$(/usr/libexec/java_home)
~/.bash_profile
。 无论如何,打开一个新终端并验证: echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
测试:编译并运行您的 Java 程序
HelloStackoverflow.java
。public class HelloStackoverflow {
public static void main(String[] args){
System.out.println("Hello Stackoverflow !");
}//End of main
}//End of HelloStackoverflow Class
HelloStackoverflow.java
的目录,然后键入命令:javac HelloStackoverflow.java
如果你幸运的话,什么都不会发生
事实上,发生了很多事情。 javac
是 Java 编译器的名称。 它将 Java 翻译成Java Bytecode
,Java 虚拟机 (JVM) 的一种汇编语言。 Java 字节码存储在一个名为HelloStackoverflow.class
的文件中。
运行:输入命令:
java HelloStackoverflow
# output:
# Hello Stackoverflow !
除了 bash/zsh 终端的设置(其他答案都很好地涵盖了这些设置),如果您想要一个用于终端 + GUI 应用程序的永久系统环境变量(适用于 macOS Sierra;也应该适用于 El Capitan):
launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)
(这会将 JAVA_HOME 设置为最新的 1.8 JDK,您可能已经经历了多个更新,例如 javac 1.8.0_101、javac 1.8.0_131)
当然,将 1.8 更改为 1.7 或 1.6(真的?)以满足您的需要和您的系统
试试这个链接http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/
这解释正确,我做了以下工作以使其工作
vim .bash_profile
export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
ESC
然后键入:wq
(在 vim 中保存并退出)source .bash_profile
echo $JAVA_HOME
如果您看到所有设置的路径。希望能帮助到你。
此链接可能对您有所帮助: https : //developer.apple.com/library/archive/qa/qa1067/_index.html
此外,您可以将环境变量放在以下文件之一中:
~/.bashrc
~/.bash_profile
~/.profile
在您的终端上运行此命令(此处 -v11 适用于版本 11(java11))-:
/usr/libexec/java_home -v11
你会在你的终端上得到这样的路径 -:
/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
现在您需要在任何编辑器中打开您的 bash 配置文件,例如 VS Code
如果你想在 vs 代码中编辑你的 bash_profile 然后运行这个命令 -:
code ~/.bash_profile
否则运行此命令,然后按 i 插入路径。 -:
open ~/.bash_profile
您将获得 .bash_profile 现在您需要添加路径,因此将其添加到 .bash_profile (您从第一个命令获得的路径)中-:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
如果您使用的是代码编辑器,那么现在转到终端并运行此命令以保存更改 -:
source ~/.bash_profile
否则按 esc 然后 :wq 退出 bash_profile 然后转到终端并运行上面给出的命令。 过程完成。 现在您可以使用此命令进行检查 -:
echo $JAVA_HOME
你会得到/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
要在 Mac 中永久设置 JAVA_HOME,我尝试了以下步骤。
/库/Java/JavaVirtualMachines
atom ~/.bash_profile
相应地更改JDK版本
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home'
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile
打开一个新终端并检查'echo $JAVA_HOME'
谢谢。
1) 第一步是如果你安装了 Java 并运行你的系统。
which java
通常,它应该是/usr/bin/java。
2) JAVA_HOME本质上是包含名为bin的子目录的目录的完整路径,该子目录又包含java .
cd /Library/Java/
3.1) 如果您只想为当前会话设置路径,则在您的终端中执行此命令export JAVA_HOME=/Library/Java
3.2) 如果你想让它持久化,你必须将命令添加到你的~/.bash_profile
文件中
vi ~/.bash_profile
export JAVA_HOME=/Library/Java/Home
并保存source ~/.bash_profile
4) 验证您是否正确添加了 JAVA_HOME 路径。 下面的命令应该给你正确的 Java 版本。
就是这样,您可以使用了!!
首先,通过运行命令/usr/libexec/java_home -v <version>
替换您运行的任何版本的 OpenJDK,找出您的 java home 所在的位置。
接下来使用vim ~/.bash_profile
编辑您的 bash 配置文件。 添加export JAVA_HOME="<java path>"
替换为您在上一步中找到的 java home 的路径。
最后,运行命令source ~/.bash_profile
这应该永久设置您的 JAVA_HOME 环境变量。
为了确保它工作运行echo $JAVA_HOME
并确保它返回您设置的路径
添加到 Dilips 的答案中,如果您使用的是 JDK 9,请在步骤 3 中使用以下内容(我的 JDK 版本为 9.0.4):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
在 .bashrc 或 .zshrc 中声明两个导出:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
添加别名以进行快速更改:
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
将默认值设置为 Java 11
java11
导出路径
export PATH=$JAVA_HOME/bin:$PATH
您可以在 .bashrc/zshrc 文件中通过 java8 更改 java11 以永久更改您的 java 版本
在 mac 中永久设置 JAVA_HOME 确保您的系统中安装了 JDK,如果未安装 jdk,您可以从这里下载https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 .html
安装 jdk 后,请按照下列步骤操作:-
1) 打开终端
2) 输入“vim .bash_profile”
3)按“i”编辑或输入路径
4) 输入你的 java 安装目录:- export JAVA_HOME=$(/usr/libexec/java_home)
5)点击ESC然后输入“:wq”(在vim中保存并退出)
6) 然后输入“source .bash_profile”
7) 如果您看到已设置好的路径,请输入“echo $JAVA_HOME”。
谢谢
如果您使用的是最新版本的 macOS,则无法使用 ~/.bash_profile 导出环境变量,因为 bash shell 在最新版本的 macOS 中已弃用。
/usr/libexec/java_home
,你会得到类似/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
东西export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
到export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
如果您使用的是鱼壳。 然后所有的变量都可以在.config/fish/config.fish中设置
vim .config/fish/config.fish
添加以下几行
set -g JAVA_HOME "your_path_to_jdk"
保存并退出vim。
这应该是设置您的 JAVA_HOME。 谢谢
Terminal.app
是一个终端模拟器。 它执行您的shell,默认情况下为bash。 将命令放在主文件夹中的.bashrc中,任何新的会话都应执行此操作。 有关bash的更多信息,请参阅手册 。
找出 jenv 会将 $JAVA_HOME 设置为一个简短的版本,例如“/Users/*****/.jenv/versions/1.8”。
必须卸载 jenv 才能使 $JAVA_HOME 设置像“JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home”一样工作
这里的答案通常是正确的,但对我来说,我不知道我需要做一些类似source ~/.bash_profile
事情才能真正让它工作。
所以完整的答案是:
nano ~/.zshenv // or
nano ~/.zshrc // or
nano ~/.bash_profile
//add this line to zshrc and bash_profile if you want to be 100% sure
export JAVA_HOME=$(/usr/libexec/java_home)
//save
source ~/.bash_profile //the KEY that generally isn't in the answers
source ~/.zshrc //I didn't do this one, but maybe you need it
添加以下
setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Home
在您的 ~/.login 文件中:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.