Maven error :Perhaps you are running on a JRE rather than a JDK?

匿名 (未验证) 提交于 2019-12-03 01:58:03

问题:

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 

回答1:

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 and mvn -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.

sudo apt-get install openjdk-8-jdk 

Then some new files and new folders are added to /usr/lib/jvm/java-8-openjdk-amd64 and mvn is able to compile again.



回答2:

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

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib 

Also, this link may help some people.



回答3:

For me, it worked like following. Please look at JAVA_HOME environment variable, whether it is pointing to JRE or JDK.? If it pointed to JRE, you will face "Perhaps you are running on a JRE rather than a JDK" issue. if so change the path to JDK.

Modifying like this, it worked for me.

JAVA_HOME C:\Program Files\Java\jdk1.8.0_31



回答4:

This is how i fixed my problem

right clik on the project > properties > Java Compiler (select the one you are using)

it was 1.5 for me but i have 1.8 installed. so i changed it to 1.8.. and voilla it worked!.



回答5:

Add this configurations in pom.xml

     ...              ...         maven-compiler-plugin3.11.71.7trueC:\Program Files\Java\jdk1.7.0_79\bin\javac     ... 


回答6:

Check if /usr/bin has 'javac'. If not you have installed JRE & have to install jdk dev version like "java-1.8.0-openjdk-devel.x86_64"



回答7:

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.



回答8:

I had the same error and I was missing the User variable: JAVA_HOME and the value for the SDK - "C:\Program Files\Java\jdk-9.0.1" in my case



回答9:

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.

  1. Check System -> Advance System Settings
  2. Click on Environment variable
  3. Add variable JAVA_HOME -> "C:\Program Files\Java\jdk1.8.0_141;"
  4. Edit "path" -> append %JAVA_HOME%; to the existing text.


回答10:

I had the same issue after installing the java-1.8.0-openjdk package on an AWS Linux AMI. The incorrect assumption I made, was that because the file ended in openjdk it would be the jdk version. This is not the case.

The openjdk install page explains everything clearly.

The java-1.8.0-openjdk package contains just the Java Runtime Environment. If you want to develop Java programs then install the java-1.8.0-openjdk-devel package.

If you've already installed the java-1.8.0-openjdk package, just leave it and the JAVA_HOME value if it's working for the JRE and install the java-1.8.0-openjdk-devel package using yum install java-1.8.0-openjdk-devel -y.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!