2013-12-21 2 views
5

На ubuntu 12, я пытаюсь запустить пример программы fuse-jna. Я получил ниже сообщение об ошибкеubuntu Не удается найти системный компилятор Java. Убедитесь, что вы установили JDK (а не только JRE)

[email protected]:~/Downloads/fuse-jna-master/examples$ ./hellofs.sh ~/hellofs 
: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: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

работает java -version команда показывает мне:

[email protected]:~/Downloads/fuse-jna-master/examples$ java -version 
java version "1.7.0_15" 
OpenJDK Runtime Environment (IcedTea7 2.3.7) (7u15-2.3.7-0ubuntu1~12.10) 
OpenJDK Client VM (build 23.7-b01, mixed mode, sharing) 

выход javac -version:

[email protected]:~/Downloads/fuse-jna-master/examples$ javac -version 
javac 1.6.0_27 

они установлены в моей системе, увидеть картину здесь

http://i40.tinypic.com/2hf2j4z.png

Пожалуйста, руководство меня, чтобы запустить эту программу на Ubuntu

+3

JDK (а не только JRE), проверка у вас есть javac.exe. попробуйте запустить JAVAC – andy

+0

работает команда Javac показать длинный вывод, некоторая часть которого, как «Использование: Javac <исходные файлы> где возможные варианты включают в себя: -g Генерировать все отладочные -g: нет Сформировать нет информации отладки -g: {lines, vars, source} Сгенерировать только некоторую информацию об отладке -nowarn Не создавать предупреждения -verbose Выводить сообщения о том, что делает компилятор -deprecation Исходные местоположения источника, в которых используются устаревшие API ...... ....... – user584910

+1

Было бы интересно узнать, что на самом деле делают сценарии оболочки. Запустите скрипт с bash -x, чтобы узнать, а также значение переменной JAVA_HOME. – Ingo

ответ

3

Это была проблема с окружающей средой переменная. После исправления переменной среды java_home в etc/environment и перезапуска ubuntu теперь она работает нормально. Спасибо за руководство.

+0

Можете ли вы поделиться изменениями переменных среды? Я не смог это решить. – HankB

+0

Я добавил 'JAVA_HOME ="/usr/lib/jvm/java-6-openjdk-i386 "' в новую строку etc/envirnment. Задача решена. – user584910

5

Установка JDK

sudo apt-get install openjdk-7-jdk 

Редакцией: первоначальный ответ был пакет для JRE (не JDK)

+0

он также не решил проблему. Я столкнулся с тем же сообщением об ошибке, что и в первом сообщении. – user584910

+1

Вы имеете в виду 'openjdk-7-jdk', jre уже существует по внешнему виду. –

3

Ничего из этого не было на моем Ubuntu. Оказывается, есть что-то вроде
/usr/lib/jvm/default-java, что является символической ссылкой на установленную версию Java.

Забавно, что это указывало на /usr/lib/jvm/java-7-openjdk-i386 (JDK!), Но JAVA_HOME указал на совершенно другое местоположение - место, где у меня есть текущая, современная установка JDK8.

Я просто обновил символическую ссылку, чтобы указать на правильное местоположение, но она, вероятно, будет переопределена обновлением OpenJDK7 ... Я думаю, что мне нужно избавиться от OpenJDK.

2

Я столкнулся с аналогичной проблемой, после просмотра этого поста, я пытался делать

gradle -v 
java -version 
javac -version 

Javac не удалось.Тем не менее, убунт побудил меня установить JAVAC со следующим сообщением

21:52:17->javac 
The program 'javac' can be found in the following packages: 
* default-jdk 
* ecj 
* gcj-4.8-jdk 
* openjdk-7-jdk 
* gcj-4.6-jdk 
* openjdk-6-jdk 
Try: sudo apt-get install <selected package> 

После установки JAVAC с помощью OpenJDK-7-JDK и добавив следующие 2 строк в мою Bashrc, Gradle начал работать

JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre" 
PATH="$PATH:$JAVA_HOME/bin" 

Здесь/USR/Библиотека/JVM/Java-7-OpenJDK-amd64/JRE является каталог, содержащий Java бинарный файл найден, выполнив Java, которые

+0

Я нахожусь в Windows, поэтому я проверил всю оставшуюся часть Интернета, прежде чем найти ваш совет, чтобы проверить javac -version. Благодаря! – Noumenon

2
  1. Установка JDK

    sudo apt-get install openjdk-7-jdk 
    
  2. Сделайте свою точку $ JAVA_HOME на недавно установленный JDK

    echo $JAVA_HOME 
    # prints nothing 
    
    sudo echo 'JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64' >> /etc/profile 
    source /etc/profile 
    
    echo $JAVA_HOME 
    # /usr/lib/jvm/java-7-openjdk-amd64 
    
  3. Обновите ява команду символическая

    java -version 
    # java version "1.6.0_32" 
    # OpenJDK Runtime Environment (IcedTea6 1.13.4) (6b32-1.13.4-1~deb7u1) 
    # OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode) 
    which java 
    # /usr/bin/java 
    ls -l /usr/bin/java 
    # lrwxrwxrwx 1 root root 22 Sep 20 21:22 /usr/bin/java -> /etc/alternatives/java 
    ls -l /etc/alternatives/java 
    # lrwxrwxrwx 1 root root 42 Sep 21 00:01 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 
    
    sudo rm /etc/alternatives/java 
    sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/bin/java /etc/alternatives/java 
    
    java -version 
    # java version "1.7.0_65" 
    # OpenJDK Runtime Environment (IcedTea 2.5.1) (7u65-2.5.1-5~deb7u1) 
    # OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode) 
    
  4. Попробуйте снова

    gradle compileJava 
    # :compileJava 
    
    # BUILD SUCCESSFUL 
    
    # Total time: 9.397 secs