问题
I tried to mvn install and got this message:
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.
Well, there is an open jdk, I also downloaded another one. I tried to point JAVA_HOME to both, now it is set:
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
I also tried to choose one of those open with sudo update-alternatives --config java but got the same error with different jdk versions in it.
How can I fix that? Thanks in advance.
回答1:
it seems like your PATH is not picked up correctly... does the output of "echo $PATH" contain the directory where javac resides? I would suggest following:
open terminal and do an:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03
export PATH=$PATH:$JAVA_HOME/bin
javac -version
which javac
if javac -version still does not work create a symlink in /usr/local/bin pointing to your javac binary:
cd /usr/local/bin
ln -s /usr/lib/jvm/jdk1.7.0_03/bin/javac javac
this should get you up an running... an alternative is to try setting up java via your package management system (e.g. "apt-get install java" or sth. similar)
回答2:
I faced similar error on an ubuntu machine while running a maven build from Jenkins. If output of 'javac -version' prompts below messages:
"The program 'javac' can be found in the following packages: default-jdk ecj gcj-5-jdk openjdk-8-jdk-headless gcj-4.8-jdk gcj-4.9-jdk openjdk-9-jdk-headless Try: apt install "
Then you can install "openjdk-8-jdk-headless" using:
apt install openjdk-8-jdk-headless
This solved my problem and the maven build went through ok.
来源:https://stackoverflow.com/questions/10812668/unable-to-locate-the-javac-compiler