user182944
user182944

Reputation: 8067

Maven package error: No compiler is provided in this environment

I am new to Maven and I am trying to create a JAR out of a HelloWorld program.

I have done the classpath setting:

enter image description here

This is the pom.xml file:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.demo</groupId>
  <artifactId>custom-project</artifactId>
  <packaging>maven-plugin</packaging>
  <version>1.0</version>
  <name>custom-project Maven Mojo</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

When I trigger mvn package command, I am getting this error:

[INFO] -------------------------------------------------------------
[ERROR] 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
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.700 s
[INFO] Finished at: 2018-04-13T12:25:12+05:30
[INFO] Final Memory: 9M/155M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project custom-project: Compilation f
ailure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

JAVA_HOME is already set as C:\Program Files\Java\jdk1.8.0_121\bin in classpath. Please suggest how to resolve this issue.

Upvotes: 1

Views: 4885

Answers (3)

Gurucharan Gupta
Gurucharan Gupta

Reputation: 1

Also you can goto your project properties-> Libraries-> add Library -> JRE system Library -> Alternate JRE -> Add. and then you choose your JDK path from your system and apply. Make sure to remove JRE From project library.

In my case, this works well.

Upvotes: 0

Jens
Jens

Reputation: 69505

Your JAVA_HOME is set to a JRE not to a JDK. The JRE does not include the Java Compiler, so set JAVA_HOME to a JDK and it should work

Upvotes: 3

DrHopfen
DrHopfen

Reputation: 847

You need to tell java what class to run. Depending on the maven plugin you use the ways might be different. This link shows how it can be done with the help of the maven-assembly-plugin https://stackoverflow.com/a/45902851/6825678

Upvotes: -1

Related Questions