2015-01-29 2 views
1

Я читаю книгу "Introducing Spring Framework" и пытается запустить первый базовый пример Hello World.Почему Gradle не удается скомпилировать Java-проект?

Здесь 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.

Edit 2: Оба which javac и which java дисплея /usr/bin/java Edit 3: Теперь компилятор, кажется, работает, но он не понимает, пружинная аннотации, используемую в коде. У меня есть ссылка пружинный в gradle.build:

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

mainClassName = System.getProperty("mainClass") 

repositories { 
    mavenCentral() 
} 

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

Просто догадка - в Windows, если я меняю системные переменные, мне нужно выйти из текущего приглашения «cmd» и открыть еще один, чтобы он мог подбирать изменения ... Это не так? Попробуйте «echo% JAVA_HOME%», может быть? Убедитесь, что у вас нет нескольких мест на системном пути для команды java.exe - на самом деле, игнорируйте меня, это, вероятно, вещь конфигурации градиента ... – BretC

+0

Я использую Ubuntu ... –

+0

Что делает 'which javac' и' который выдает java'? В противном случае вы также можете установить java.home в файле свойств градиента. 'org.gradle.java.home =/opt/jdk1.8.0_20' например – superbly

ответ

0

независимо от комментариев, которые я до сих пор считаю, что это проблема PATH.

Убедитесь, что все в порядке с вашими путями и устанавливает

Это лучший ресурс (мое мнение) для легкой и быстрой установки JDK на Linux - http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux

Проверьте это.

PS: Другое дело, что у меня в виду:

Написать очень очень простой Helloworld.java, просто System.out.print («что-то»);

Поместите его куда-нибудь и перейдите с помощью терминала.

Теперь попробуйте запустить его из терминала - Java Helloworld.java в случае успеха, Javac HelloWorld

и т.д.

Если это работает, это проблема с Gradle. Возможно, вы или каким-то образом система изменила предопределенный JAVA_PATH в настройке Gradle.

Проверьте это!

0

У вас есть три вещи для проверки на наличие Windows. В других системах вам также нужно будет проверить эти вещи, но способ сделать это будет иным:

  • Если град хорошо доступен. gradle -v расскажет вам, есть ли версия градиента. В противном случае поместите папку gradleX.XX \ bin в PATH.
  • Если java хорошо доступен. java -v расскажет вам, есть ли одна версия java.
  • Если JAVA_PATH правильно установлен. Верьте или нет, но java может быть доступен из командной строки, в то время как JAVA_PATH неправильно установлен. Это потому, что сладкий Oracle решил, что было бы здорово копировать исполняемый файл java в папку Windows \ System32. Так что Java действительно доступен из командной строки, но Gradle его не находит. Итак, echo %JAVA_HOME%.Перейдите в эту папку, и если она не существует (что, скорее всего, почему Gradle жалуется на JAVA_HOME), исправьте переменную окружения, чтобы указать на фактическую папку установки java.

И все.

Смежные вопросы