Gradle:Java:找不到系统Java编译器

4

我应该如何gradle我的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中。

因此,我认为我已经按照这篇文章中提到的做了。那里的提示与我通过Google搜到的大多数提示类似。


由于Invisible Arrows的回答,我将$JAVA_HOME更改为/usr/lib/jvm/java-7-openjdk-i386。

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

仍然是同样的错误。
3个回答

3

根据Invisible Arrows的提示,我进行了完全卸载Java包。然而,遵循此方法的人应该知道,最受欢迎的答案会删除许多需要重新安装的软件包。

在删除所有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'。然而,我将更改它。 - Stefan Bollmann
1
嗯,确实很奇怪。另一种方法是删除所有现有的Java安装,并使用sudo apt-get install openjdk-7-jdk重新安装它。这可能会节省很多麻烦,尝试排除现有问题 :) - Invisible Arrow

0
对我来说,我必须进入Window->Preferences,在Git->Arguments中将其设置为“Workspace JRE”,这已经在Eclipse的Java->“Installed JRE”设置中设置好了,而不是默认选项“Use Gradle wrapper's default”。

我不知道如何在终端中执行此操作,但在Eclipse中非常容易,只需要转到Gradle任务视图->构建->右键单击->打开Gradle配置->JAVA_HOME->并放置您的当前环境值,例如C:\ Program Files \ Java \ jdk1.7.0_79。希望这可以帮助您。 - Fernando Bustos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接