Не удалось найти компилятор Javac

Я попытался mvn install и получил это сообщение:

Compilation failure
Unable to locate the Javac Compiler in:
  /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.

Ну, есть открытый jdk, я также скачал еще один. Я попытался указать JAVA_HOME для обоих, теперь он установлен:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH

Я также попытался выбрать один из тех, которые были открыты с помощью sudo update-alternatives --config java, но получил ту же ошибку с разными версиями jdk в ней.

Как я могу это исправить? Спасибо заранее.

Ответ 1

кажется, что ваш PATH не подобрал правильно... выводит ли вывод "echo $PATH" каталог, в котором находится javac? Я бы предложил следующее:

откройте терминал и выполните:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03
export PATH=$PATH:$JAVA_HOME/bin
javac -version
which javac

Если javac -version все еще не работает, создайте символическую ссылку в /usr/local/bin, указывающую на ваш двоичный код javac:

cd /usr/local/bin
ln -s /usr/lib/jvm/jdk1.7.0_03/bin/javac javac

это должно заставить вас работать... альтернативой является попытка настроить java через вашу систему управления пакетами (например, "apt-get install java" или аналогичный).

Ответ 2

Я столкнулся с подобной ошибкой на машине ubuntu во время запуска сборки maven из Jenkins. Если вывод сообщений "javac -version" выводится ниже сообщений:

"Программа" javac "может быть найдена в следующих пакетах: по умолчанию-JDK СЕС GCJ-5-JDK OpenJDK-8-JDK-безголовый GCJ-4,8-JDK GCJ-4,9-JDK OpenJDK-9-JDK-безголовый Попробуйте: apt install "

Затем вы можете установить "openjdk-8-jdk-headless", используя:

apt install openjdk-8-jdk-headless

Это решило мою проблему, и сборка maven прошла нормально.