为什么Gradle无法编译Java项目?

时间:2015-01-29 16:02:19

标签: java spring compilation gradle

我正在阅读一本书"Introducing Spring Framework"并尝试运行第一个基本的Hello World示例。

这里Gradle用于构建项目但不知何故无法编译:

Caused by: java.lang.RuntimeException: 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.

问题是,我已正确配置JAVA_HOME,而java -version正确返回了jdk的版本。

可能出现什么问题?

编辑:我正在使用Linux。 Ubuntu Linux系统。

编辑2:which javacwhich java都显示/usr/bin/java 编辑3:现在编译器似乎正在工作,但它并不了解代码中使用的spring注释。我在gradle.build中有弹簧参考:

apply plugin: 'java'
apply plugin: 'application'

mainClassName = System.getProperty("mainClass")

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework:spring-context:4.0.5.RELEASE'
}

2 个答案:

答案 0 :(得分:0)

无论评论如何,我仍然认为这是一个PATH问题。

确保您的路径和安装一切正常

这是在Linux上轻松快速地设置JDK的最佳资源(我的观点) - http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux

检查出来。

PS:我脑子里想到的另一件事是:

写一个非常非常简单的HelloWorld.java,只需要System.out.print(“something”);

将它放在某处并使用终端导航。

现在尝试从终端运行它 - 如果成功,则运行java HelloWorld.java, javac HelloWorld

如果这样可行,那么Gradle就会出现问题。也许你或者某种程度上系统在Gradle的设置中改变了预定义的JAVA_PATH。

检查一下!

答案 1 :(得分:0)

要检查Windows,您需要检查三件事。在其他系统上,您还需要检查这些内容,但这样做的方式会有所不同:

  • 如果gradle很方便。 gradle -v会告诉您是否找到了gradle版本。否则将gradleX.XX \ bin文件夹放在PATH中。
  • 如果java很容易访问。 java -v会告诉您是否找到了一个版本的java。
  • 如果JAVA_PATH设置正确。信不信由你,但是在没有正确设置JAVA_PATH的情况下,可以从命令行访问java。这是因为甜蜜的Oracle认为将java可执行文件复制到Windows \ System32文件夹很酷。所以java确实可以从命令行访问,但是Gradle没有找到它。所以,echo %JAVA_HOME%。转到该文件夹​​,如果它不存在(这很可能是Gradle抱怨JAVA_HOME的原因),请修复环境变量以指向实际的java安装文件夹。

就是这样。