无法设置 JAVA_HOME

无法设置 JAVA_HOME

我正在运行 Linux Mint Quiana。我想运行 Android Studio,这需要 Java。由于我需要 NetBeans,我决定从 Oracle 网站安装带有 Java 8 包的 NetBeans。我尝试了几天来设置 JAVA_HOME 环境变量,但没有成功。经过无数次尝试和阅读解决方案网页后。我尝试了以下方法:

  1. export JAVA_HOME=/usr/local/jdk1.8.0_20 (JAva 似乎安装的位置)
  2. JAVA_HOME=/usr/local/jdk1.8.0_20 - 没有导出部分并从另一个终端窗口查询 echo $JAVA_HOME 但仍然什么都没有显示。
  3. 我尝试修改 /etc/environment 并添加上述行,但没有成功。我还尝试编辑 /etc/profile,但仍然没有成功。(没有成功是指变量未设置)

我真的不知道这个东西是怎么回事,但是它看起来很复杂,因为它应该是 shell 中的一个简单命令。

当我输入:

  1. update-alternatives --query java我什么也没得到
  2. java -version我得到:

    程序‘java’可以在以下包中找到:

    • 默认 jre
    • gcj-4.8-jre-无头
    • openjdk-7-jre-headless
    • gcj-4.6-jre-无头
    • openjdk-6-jre-headless 尝试:sudo apt-get install 这对我来说似乎很愚蠢,因为我可以使用 netbeans 编译东西,这意味着 JDK 已正确安装某处
  3. which java什么都没告诉我

我希望这些信息足以解决我的问题。

答案1

  • 一个终端窗口中的变量定义不属于其他终端窗口的范围。要在所有终端窗口中定义变量,您需要将其添加到 shell 配置文件中。通常这将是~/.bashrc,Bash 是大多数发行版中的默认 shell。您可以添加如下行export JAVA_HOME=/some/path使JAVA_HOME变量可供所有 shell 和在这些 shell 中运行的脚本使用。(它仅在打开的 shell 中可用保存~/.bashrc;如果您希望它在已打开的终端中可用,只需运行exec "$SHELL"即可重新启动您的shell。
  • which java查找变量java中包含的以冒号分隔的路径中调用的可执行文件PATH,无论的值是什么JAVA_HOME
  • JAVA_HOME由使用Java应用程序,而不是通过 shell 或终端。Oracle 对此进行了描述作为:

    用于触发 PATH 中找到的“java”以使用其他 JDK 映像的环境变量。遗憾的是,并非所有“java”启动脚本都遵循此环境变量。许多 java 工具启动脚本也使用它来确定要运行哪个“java”,从而绕过 PATH 设置中找到的“java”。在 JDK 构建期间设置此变量是个坏主意,不要这样做。

  • 关于在多个软件包中可用的提示java意味着可执行文件的目录java(最有可能是/usr/local/jdk1.8.0_20/bin您的这种情况)不在PATH变量中,并且可以从列出的发行版软件包中安装。您需要将目录添加到变量中,就像上面的 shell 启动文件中PATH一样。export PATH="$PATH"':/usr/local/jdk1.8.0_20/bin'

这样事情就清楚了吗?

答案2

我没有使用 Oracle 网站上 NetBeans 提供的 Java 版本,而是在进一步研究之后,找到了这个答案这很快就解决了这个问题。

答案3

难以置信的是,我不得不重启 Windows 7 才能让环境变量生效。通常只需重新打开终端就可以了。

相关内容