Linux 中的 JAVA_HOME 目录
- 2024-11-12 08:36:00
- admin 原创
- 28
问题描述:
是否有任何 Linux 命令可用于查找JAVA_HOME
目录?我尝试打印出环境变量(“env”),但找不到目录。
解决方案 1:
在 Linux 上你可以运行$(dirname $(dirname $(readlink -f $(which javac))))
在 Mac 上你可以运行$(dirname $(readlink $(which javac)))/java_home
我不确定窗户是否合适,但我想where javac
应该很接近
解决方案 2:
只是另一个解决方案,这个是跨平台的(使用java
),并指出 jre 的位置。
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
输出 的所有java
当前设置,并找到名为 的设置java.home
。
对于 Windows,您可以使用 findstr 而不是 grep。
java -XshowSettings:properties -version 2>&1 | findstr "java.home"
解决方案 3:
echo $JAVA_HOME
如果已设置,则会打印该值。但是,如果您没有在启动脚本中手动设置它,则可能未设置。
如果您尝试which java
但找不到任何内容,则 Java 可能未安装在您的计算机上,或者至少不在您的路径中。根据您拥有的 Linux 发行版以及您是否具有 root 访问权限,您可以访问http://www.java.com下载所需的版本。然后,您可以将 JAVA_HOME 设置为指向此目录。请记住,这只是一个惯例,不应用它来确定 java 是否已安装。
解决方案 4:
我知道这已经晚了,但是这个命令会搜索 /usr/ 目录来为你查找 java
sudo find /usr/ -name *jdk
结果
/usr/lib/jvm/java-6-openjdk
/usr/lib/jvm/java-1.6.0-openjdk
仅供参考,如果你使用的是 Mac,JAVA_HOME 目前位于
/System/Library/Frameworks/JavaVM.framework/Home
解决方案 5:
要显示环境变量的值,请使用:
回显 $VARIABLE
因此你的情况是:
回显 $JAVA_HOME
如果您没有设置,您可以在.bashrc
文件中添加:
导出JAVA_HOME = $(readlink -f /usr/bin/java | sed“s:bin/java::”)
当你更新软件包时它将动态地改变。
解决方案 6:
如果$JAVA_HOME
在您的环境中定义了...
$ echo $JAVA_HOME
$ # I am not lucky...
您可以从加载的类中猜测出来。
$ java -showversion -verbose 2>&1 | head -1
[Opened /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar]
此方法可确保您在有多个安装的情况下找到正确的jdk
/使用的。jre
或者使用strace
:
$ strace -e open java -showversion 2>&1 | grep -m1 /jre/
open("/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
解决方案 7:
在终端上输入:
回显“$JAVA_HOME”
如果您没有得到任何结果,则表示您的环境变量 JAVA_HOME 尚未设置。您可以尝试使用“locate java”来尝试查找 Java 的安装位置。
解决方案 8:
您可以通过执行此命令从命令行进行检查echo $JAVA_HOME
。如果安装了 Java 但未设置路径,则需要确定 Java 安装的路径。我更喜欢使用sudo update-alternatives --config java
列出所有已安装版本并标记当前活动版本并提供切换对话框的命令:
有3个程序提供‘java’。
选择命令
-----------------------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-2.fc35.x86_64/bin/java)
2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-1.fc35.x86_64/bin/java)
*+ 3 /usr/java/jdk-17.0.2/bin/java
按 Enter 保留当前选择[+],或输入选择编号:
从上面的列表中,您可以选择要作为默认的 Java 版本。JAVA_HOME
例如,要将设置为选项 3,您可以这样做export JAVA_HOME=/usr/java/jdk-17.0.2
解决方案 9:
您是否设置了 JAVA_HOME
Korn 和 bash shell:export JAVA_HOME=jdk-install-dir
Bourne shell:JAVA_HOME=jdk-install-dir;导出JAVA_HOME
C shell:setenv JAVA_HOME jdk-安装目录
解决方案 10:
这是一个改进,只抓取目录到标准输出:
java -XshowSettings:properties -version 2>&1 \n | sed '/^[[:space:]]*java.home/!d;s/^[[:space:]]*java.home[[:space:]]*=[[:space:]]*//'
解决方案 11:
export JAVA_HOME=$(realpath $(which java) | sed 's//bin/.*//')
解释:
realpath
获取解析符号链接的绝对路径sed 's//bin/.*//'
删除/bin
路径上的所有内容
等价地:
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
(来源: https: //stackoverflow.com/a/29622512/2314737)
(假设已安装 Java)
解决方案 12:
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment
如果你真的想获得一些关于 BASH 的信息,请将该脚本放入 .bashrc 中,然后观察它。你可以滚动查看它。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件