I've never worked with Maven before and I am following the instructions here. When I run the command
mvn integration-test -Pamp-to-war
It initially downloaded a whole bunch of dependencies, and in the end it showed,
COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
I am on ubuntu 13.04.
If there's anything you want me to tell you, let me know. Thanks.
EDIT
When I do echo $JAVA_HOME
I get /usr/lib/jvm/java-7-openjdk-i386/
When I do mvn -version
I get,
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix"
Also, I found out this problem faced by someone else. But I am not sure how to go about the solution that is specified?
Further edits.
kraken@kraken-Inspiron-1545:/usr/lib/jvm/java-7-openjdk-i386$ ls -l
total 12
drwxr-xr-x 2 root root 4096 Sep 9 10:44 bin
lrwxrwxrwx 1 root root 41 Jul 4 2013 docs -> ../../../share/doc/openjdk-7-jre- headless
drwxr-xr-x 5 root root 4096 Oct 13 2013 jre
drwxr-xr-x 4 root root 4096 Oct 13 2013 man
Just adding more details on where to setup. Main reason would be the JAVA_HOME setup in the environment variable should be pointing to correct JDK location.
I've been facing the same issue with java 8 (ubuntu 16.04), trying to compile using
mvn
command line.I verified my
$JAVA_HOME
,java -version
andmvn -version
. Everything seems to be okay pointing to/usr/lib/jvm/java-8-openjdk-amd64
.It appears that java-8-openjdk-amd64 is not completly installed by default and only contains the JRE (despite its name "jdk").
Re-installing the JDK did the trick.
Then some new files and new folders are added to
/usr/lib/jvm/java-8-openjdk-amd64
and mvn is able to compile again.Apparently, it requires tools.jar file inside the lib folder of my $JAVA_HOME. I did not have the lib folder, so I reinstalled my jdk using command
Also, this link may help some people.
I faced the issue even though JAVA_HOME was pointing to JDK. It took time to figure out why it was throwing the exception.
The issue was I set JAVA_HOME as admin user on my window machine. You need to add JAVA_HOME environment variable pointing to right JDK to your user profile environment variable settings.
Right click on your project folder (Maven one), select properties and from the properties window, again select Java Compiler and see what is selected against compiler compliance level and make sure that it is the same version as your jre. In my case I had 1.8 but 1.5 was selected against compiler compliance level. After selecting 1.8 the build was successful without this error.
For solving my issue on Linux don't have a JDK, I just download the JDK and upload to the Linux server, and type: tar xvf jdk-8u45-linux-x64.tar.gz