【问题标题】:gradle: java: Cannot find System Java Compilergradle: java: 找不到系统 Java 编译器
【发布时间】:2015-01-10 17:57:25
【问题描述】:

如何对我的 hello.java 项目进行分级?现在我收到错误消息“找不到系统 Java 编译器”。但是,对我来说,在这个 Ubuntu 14 上配置一切似乎都很好:

user:~/program/java/src/main/java$ javac hello.java 
user:~/program/java/src/main/java$ ls
hello.class  hello.java
user:~/program/java/src/main/java$ java hello 
Hello World!
user:~/program/java/src/main/java$ cd ../../../
user:~/program/java$ ls
build  build.gradle  src
user:~/program/java$ gradle build
:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.

* Try: ...

BUILD FAILED

我的系统配置:

user:~/program/java$ javac -version
javac 1.7.0_72
user:~/program/java$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1)
OpenJDK Server VM (build 24.65-b04, mixed mode)
suser:~/program/java$ echo "$JAVA_HOME"
/usr/lib/jvm/java-1.7.0-openjdk-i386
user:~/program/java$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 41 Jan 10 18:29 /etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-i386/bin/java

JAVA_HOME 定义在 /etc/environment(已重新启动)以及 $HOME/.bashrc 中。

所以,我想我做了this post 中提到的事情。那里的提示与我在谷歌上发现的大多数提示相似。


由于不可见箭头的回答,我将 $JAVA_HOME 更改为 /usr/lib/jvm/java-7-openjdk-i386

user:~/program/java$ echo "$JAVA_HOME"
/usr/lib/jvm/java-7-openjdk-i386

还是同样的错误。

【问题讨论】:

    标签: java ubuntu gradle


    【解决方案1】:

    按照 Invisible Arrows 的提示,我做了一个 complete uninstallation of my java packages.,但是,遵循这个应该知道,那里的最佳投票答案删除了许多您必须稍后重新安装的软件包。

    删除所有 java 足迹后,我重新安装了 java 7 jdk 和 gradle

    sudo apt-get install openjdk-7-jdk gradle
    

    现在它可以工作了。

    【讨论】:

      【解决方案2】:

      从您上面粘贴的属性来看,似乎安装了两个版本的 Java:

      1. /usr/lib/jvm/java-1.7.0-openjdk-i386(很可能不是 JDK,而只是 JRE)
      2. /usr/lib/jvm/java-7-openjdk-i386

      JAVA_HOME 指向的那个似乎是 JRE 而不是 JDK。 尝试将其更改为指向 /usr/lib/jvm/java-7-openjdk-i386,然后运行 ​​Gradle 构建。

      另外,验证 javajavac 返回的版本是否相同,这将确认它们指向相同的 JDK 安装。

      【讨论】:

      • 'ls -l /usr/lib/jv/java-1.7.0-openjdk-i386' 给出 'lrwxrwxrwx 1 root root 19 Apr 18 2014 /usr/lib/jvm/java-1.7。 0 openjdk-i386-> java-7-openjdk-i386'。但是,我会改变这一点。
      • 嗯,这确实很奇怪。另一种方法是删除所有现有的 Java 安装,然后使用 sudo apt-get install openjdk-7-jdk 重新安装它。尝试解决现有问题可能会节省很多麻烦:)
      【解决方案3】:

      对我来说,我必须转到 Window->Preferences 并在 Git->Arguments 中,将其设置为我已经在 Eclipse 的 Java->“Installed JRE”设置中设置的“Workspace JRE”,而不是默认选项“使用 Gradle 包装器的默认值。

      【讨论】:

      • 我不知道如何从终端做到这一点,但在 Eclipse 中太容易了,只需要转到 Gradle 任务视图 -> 构建 -> 右键单击​​ -> 打开 Gradle 配置 -> JAVA_HOME ->并输入您环境的当前值,例如 C:\Program Files\Java\jdk1.7.0_79 我希望这对您有所帮助
      猜你喜欢
      • 2013-05-30
      • 2015-11-28
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-01-30
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多