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 ...

问题描述:

是否有任何 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 中,然后观察它。你可以滚动查看它。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用