Linux 中的 JAVA_HOME 目录

2024-11-12 08:36:00
admin
原创
302
摘要:问题描述:是否有任何 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 中,然后观察它。你可以滚动查看它。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用