我正在运行 Linux Mint Quiana。我想运行 Android Studio,这需要 Java。由于我需要 NetBeans,我决定从 Oracle 网站安装带有 Java 8 包的 NetBeans。我尝试了几天来设置 JAVA_HOME 环境变量,但没有成功。经过无数次尝试和阅读解决方案网页后。我尝试了以下方法:
- export JAVA_HOME=/usr/local/jdk1.8.0_20 (JAva 似乎安装的位置)
- JAVA_HOME=/usr/local/jdk1.8.0_20 - 没有导出部分并从另一个终端窗口查询 echo $JAVA_HOME 但仍然什么都没有显示。
- 我尝试修改 /etc/environment 并添加上述行,但没有成功。我还尝试编辑 /etc/profile,但仍然没有成功。(没有成功是指变量未设置)
我真的不知道这个东西是怎么回事,但是它看起来很复杂,因为它应该是 shell 中的一个简单命令。
当我输入:
update-alternatives --query java
我什么也没得到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 已正确安装某处
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 才能让环境变量生效。通常只需重新打开终端就可以了。