Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failure executing javac: Compilation failure

Tags:

maven

Same project Building using maven on two different laptops. On one its running good and on one its showing error.

Status: Both Systems are of same configurations.

C:\Users\admin>mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-07 00:46:01+0530)
Java version: 1.6.0_43
Java home: C:\Installers\Java\jdk1.6.0_43\jre
Default locale: en_IN, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "amd64" Family: "windows"

Command used: mvn clean install -DskipTests=true

Error:

[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 3 source files to C:\Users\admin\HeliosWorkspace\...\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
Failure executing javac,  but could not parse the error:
The system cannot find the path specified.

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.BuildFailureException: Compilation failure
Failure executing javac,  but could not parse the error:
The system cannot find the path specified.    

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor
.java:715)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifec
ycleExecutor.java:556)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.
java:535)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultL
ifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleE
xecutor.java:348)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java
:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
Failure executing javac,  but could not parse the error:
The system cannot find the path specified.

I even tried even deleting everything like creating .m2 folder again.

like image 418
Jyoti Prakash Avatar asked Jun 06 '13 07:06

Jyoti Prakash


1 Answers

I had this issue, and resolved it with some troubleshooting.

This is actually a DOS error message when you try to execute a file but enter an invalid path to it.

C:\Users\me>c:\asdf\foo.exe
The system cannot find the path specified.

Maven is trying to execute javac to compile your code but doesn't have the correct path.For many setups, you will need to check the path to your compiler in your pom.xml. Go to the cmd prompt and copy and paste it in and make sure its a valid path.

For a setup that uses settings.xml profiles to define some global configurations on different JAVA_HOMEs such as the below example, ensure the paths are correct in each variable, the profile with these variables is active (activeProfile tags can ensure this), and is correctly referenced in your pom.xml

<!-- settings.xml -->
<profiles>
<profile>
  <id>compiler-versions</id> 
    <properties>
        <JAVA_1_5_HOME>C:/java/jdk1.5.0_16</JAVA_1_5_HOME>
        <JAVA_1_6_HOME>C:/java/jdk1.6.0_43</JAVA_1_6_HOME>
        <JAVA_1_7_HOME>C:/java/jdk1.7.0_55</JAVA_1_7_HOME>
  </properties>
</profile>
</profiles>


 <activeProfiles>
    <!-- make the profile active all the time -->
    <activeProfile>compiler-versions</activeProfile>
 </activeProfiles>

pom.xml snippet:

<!-- pom.xml -->
<!-- ... -->
<build>
            <configuration>
                <verbose>false</verbose>
                <fork>true</fork>
                <executable>${JAVA_1_6_HOME}/bin/javac</executable>
                <compilerVersion>1.6</compilerVersion>
                <meminitial>256m</meminitial>
                <source>1.6</source>
                <target>1.6</target>
                <!--encoding>UTF-8</encoding-->
                <maxmem>512m</maxmem>
            </configuration>
</build>
like image 184
jiman Avatar answered Oct 15 '22 12:10

jiman