JAVA_HOME设置到错误的目录


13

您好,Ubuntu用户,

我正在尝试学习如何对Minecraft进行修改。为了遵循我正在使用的教程,我需要运行“ gradlew”。命令如下

./gradlew setupDecompWorkspace eclipse

这产生以下

ERROR: JAVA_HOME is set to an invalid directory: /usr/local/java/jdk1.8.0_20

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

显然我不知道该怎么办,甚至也不知道这意味着什么。任何帮助深表感谢。

Answers:


31

在运行命令之前,请尝试输入:

export JAVA_HOME="path_to_java_home"

其中path_to_java_home是bin / java所在的文件夹。

如果正确安装了Java,则可以使用以下命令找到其位置:

readlink -f $(which java)

别忘了在将路径放入JAVA_HOME时从路径末尾删除bin / java


好的,我按照您的意思做了,但是除了路径已更改之外,它的结果相同。
Joseph_carp

1
如果$JAVA_HOME/bin/java -version导出后运行,显示Java版本是否可以正常工作?
Andrew Onischuk 2014年

$ JAVA_HOME / bin / java -version产生bash:/usr/local/java/jdk1.8.0_20/bin/java:没有这样的文件或目录
Joseph_carp

2
好像您的导出错误。请显示您使用的导出命令。而且还显示readlink -f $(which java)输出
安德鲁Onischuk

5
你应该把它设置为其中斌/ Java是意味着该文件夹export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
安德鲁Onischuk

13

要使其在Linux / Ubuntu上自动运行,请在您的末尾添加以下行.bashrc

JAVA_HOME=$(dirname $( readlink -f $(which java) ))
JAVA_HOME=$(realpath "$JAVA_HOME"/../)
export JAVA_HOME

这将获取Java可执行文件,然后爬到目录级别

要在Debian / Ubuntu上指定默认的Java版本/可执行文件,请运行一次

sudo update-alternatives --config java

这是基于Andrew Onischuk先前的回答建立的(谢谢!)


它的工作就像一种魅力。3天后解决了我的问题。
Hitesh Sarsava

1

尝试编辑/ usr / bin / gradle

用#注释行“ export JAVA_HOME = / usr / lib / jvm / default-java”

这个:#export JAVA_HOME = / usr / lib / jvm / default-java


1

使用以下命令获取Java路径

whereis java

以下是可能的输出,具体取决于您的默认Java版本

java: /usr/bin/java /usr/share/java /usr/lib/jvm/jdk1.8.0_241/jre/bin/java

Maven需要选择Java位置(主目录),以便您可以使用以下命令导出Java路径

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre

这将使Maven在/ etc / environment文件中选择Java版本和位置。

您可以选择使用以下命令在/ etc / environment中将其手动添加

sudo nano /etc/environment

然后编辑 JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.