gradle: java: 找不到系统 Java 编译器

gradle: java: Cannot find System Java Compiler

如何 gradle 我的 hello.java 项目?现在我收到错误消息 "Cannot find System Java Compiler"。但是,对我来说,在 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:

  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 安装。

根据 Invisible Arrows 的提示,我做了一个 complete uninstallation of my java packages. 然而,跟随这个的人应该知道,那里的最佳投票答案删除了许多你必须稍后重新安装的软件包。

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

sudo apt-get install openjdk-7-jdk gradle

现在可以使用了。

对我来说,我必须转到 Window->Preferences 并在 Git->Arguments 中将其设置为 'Workspace JRE',我已经在 Eclipse 的 [=15] 中进行了设置=]->'Installed JRE' 设置,与默认选项“使用 Gradle 包装器的默认设置”相对。