web-dev-qa-db-ja.com

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があります。別の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で開いているものを1つ選択しようとしましたが、jdkのバージョンが異なると同じエラーが発生しました。

どうすれば修正できますか?前もって感謝します。

14
John Doe

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がまだ機能しない場合は、javacバイナリを指す/ usr/local/binにシンボリックリンクを作成します。

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

これで実行できるはずです...代わりに、パッケージ管理システムを介してJavaを設定してみてください(例: "apt-get install Java"またはsth。同様))

18
Korgen

Jenkinsからmavenビルドを実行しているときに、ubuntuマシンで同様のエラーに直面しました。 「javac -version」の出力がメッセージの下に表示される場合:

「プログラム「javac」は次のパッケージにあります:default-jdk ecj gcj-5-jdk openjdk-8-jdk-headless gcj-4.8-jdk gcj-4.9-jdk openjdk-9-jdk-headless試してみてください:aptインストール」

次に、以下を使用して「openjdk-8-jdk-headless」をインストールできます。

apt install openjdk-8-jdk-headless

これで私の問題は解決し、Mavenビルドは問題なく通過しました。

1
Yeamin Rajeev