【问题标题】:Setting Environment variable in Linux在 Linux 中设置环境变量
【发布时间】:2015-05-21 10:16:32
【问题描述】:

我在我的项目中使用 Maven,我需要在我的系统中设置环境变量以使其工作。我已经为 maven 设置了环境变量,但它还需要设置 Java 环境变量。我正在通过远程服务器通过 Putty 访问 linux。我尝试设置 JAVA_HOME 环境变量,但出现此错误:

错误:未正确定义 JAVA_HOME。我们无法执行 /home/z222189/jdk1.8.0_31/jre/bin/java

我为此使用了 export JAVA_HOME=/home/z222189/jdk1.8.0_31/jre

即使我尝试在 linux 中直接执行 java.exe 文件,我也会遇到错误

-bash: ./java.exe: 无法执行二进制文件

关于如何解决此问题的任何建议?

【问题讨论】:

  • 那个 jre 是从哪里来的? linux 可执行文件通常没有 .exe 扩展名,而 Oracle 或 OpenJDK 提供的 java 可执行文件肯定没有 .exe 扩展名。您是否偶然从 Windows 系统中复制了该文件?
  • 是的,因为我正在使用 Windows 并通过 Putty 访问 linux。我将文件从 Windows 复制到我的远程文件夹。我无法直接从命令行下载 maven。
  • 尝试为 linux 下载然后 :D
  • 为 linux 下载。收到此错误:无法执行二进制文件。 mvn -version /home/z222189/apache-maven-3.2.1/bin/mvn: line 190: /home/z222189/jdk1.8.0_31/bin/java: cannot execute binary file /home/z222189/apache-maven-3.2.1/bin/mvn: line 190: /home/z222189/jdk1.8.0_31/bin/java: Success

标签: java linux maven environment-variables


【解决方案1】:

您不应引用 jre/ 子文件夹,因为 Maven 将需要 Java 编译器和其他可能仅支持 JDK 的工具。

所以只需使用:

 JAVA_HOME=/home/z222189/jdk1.8.0_31

编辑:(确保 正确工作 JDK 安装在那个位置,当然......)

【讨论】:

  • 即使结果相同。我也试过了。
  • 也许你应该确保你的 java,就像@fvu 说的那样,确保它不是 Linux 系统上的 Windows 安装。
【解决方案2】:

您似乎在Linux,请确保您获得适用于 Linux 的 Java

使用

设置JAVA_HOME
export JAVA_HOME=/home/z222189/jdk1.8.0_31

不工作,因为没有java,或者版本不正确,如果你已经安装了正确的java linux版本并且你真的不知道你的oracle-java安装在哪里,你可以找到这个运行

which java

它会告诉你正在调用java 的哪个二进制文件,通常类似于

/usr/bin/java

但你可以

readlink -f /usr/bin/java

这会给你类似的东西

/usr/lib/jvm/java-7-oracle/jre/bin/java

所以

export JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre/

【讨论】: