2013-06-06 3 views
5

Тот же проект Построение с использованием maven на двух разных ноутбуках. На одном его работает хорошо и на одном его показывается ошибка.Ошибка выполнения javac: Ошибка компиляции

Статус: Обе системы имеют одинаковую конфигурацию.

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" 

Команда используется: MVN чистой установки -DskipTests = истинное

Ошибки:

[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. 

Я даже пытался даже удалить все как раз создавая .m2 папки.

+0

Выполните 'mvn -X clean install -DskipTests = true', чтобы увидеть вывод отладки и вставить его здесь. –

+0

проверьте переменную Java_Home – Adarsh

+0

Также проверьте правильность настройки плагина компилятора. –

ответ

1

Спасибо всем, теперь его работа:

mvn -X clean install -DskipTests=true 

режим отладки очень полезно.

0

Проверьте POM файл и убедитесь, что вы имеете право переменные окружения для MVN и Java

0

У меня была аналогичная проблема, и я обнаружил, что settings.xml @ MAVEN_HOME/конф или C: \ Users \ .m2 \ settings.xml указывал на неправильный путь JDK, исправляя который исправил проблему. Сообщение об ошибке, которое напечатано выше, на самом деле указывает на то, что говорит «Ошибка выполнения javac», что означает, что Maven не нашел JDK.

Благодаря Hithesh

3

Я имел этот вопрос, и решить его с некоторыми устранения неполадок.

Это сообщение об ошибке DOS при попытке выполнить файл, но введите недопустимый путь к нему.

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

Maven пытается выполнить JAVAC для компиляции кода, но не имеет правильный path.For много настроек, вам нужно будет проверить путь к вашему компилятору в вашем pom.xml. Перейдите в приглашение cmd и скопируйте и вставьте его и убедитесь, что он действительный путь.

Для настройки, которая использует профили settings.xml для определения некоторых глобальных конфигураций на разных JAVA_HOME, таких как приведенный ниже пример, убедитесь, что пути верны в каждой переменной, профиль с этими переменными активен (теги ActiveProfile могут обеспечить это) и правильно упоминается в вашем 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 фрагмент кода:

<!-- 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> 
0

Я знаю, что это старая тема, но я думаю, что этот ответ будет помогать людям в будущем:

Java home: C:\Installers\Java\jdk1.6.0_43\jre

Вы используете JRE вместо JDK. просто удалите «\ jre» из вашего java-сайта

Смежные вопросы