当前位置: 首页 > 知识库问答 >
问题:

javac执行失败:编译失败

邓兴为
2023-03-14

在两台不同的笔记本电脑上使用maven构建相同的项目。一个是运行良好,一个是显示错误。

状态:两个系统的配置相同。

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 clean install-DskipTests=true

错误:

[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文件夹。

共有3个答案

澹台昆
2023-03-14

我遇到了类似的问题,我发现设置.xml@ Maven_home/ conf或C:\Users\.m2\settings.xml指向错误的JDK路径,更正了确实解决了问题。上面打印的错误消息实际上是“执行javac失败”的地方,这意味着Maven没有找到JDK。

谢谢Hithesh

裘嘉树
2023-03-14

谢谢大家,现在它工作了:

mvn -X clean install -DskipTests=true

调试模式非常有用。

沈飞翼
2023-03-14

我遇到了这个问题,并通过一些故障排除解决了它。

这实际上是一个DOS错误信息,当你试图执行一个文件,但输入了一个无效的路径。

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

Maven 正在尝试执行 javac 来编译你的代码,但没有正确的路径。对于许多设置,您需要在pom.xml中检查编译器的路径。转到cmd提示符并将其复制并粘贴到其中,并确保它是有效的路径。

对于使用设置的设置.xml配置文件在不同JAVA_HOMEs(如下例所示)上定义一些全局配置,请确保每个变量中的路径正确,具有这些变量的配置文件处于活动状态(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>
 类似资料:
  • 我试图在eclipse中用maven构建一个spark应用程序,但我遇到了一个编译失败。我修正了系统变量,给它提供到JDK的路径,而不是到JRE的路径,如下所示: 并且我将这个字符串添加到变量中,但是没有起作用。因此,我尝试不使用如下但没有新内容。 因此,我尝试通过eclipse来指出我的JDK,如下所示:,我也选择了JDK,但这个解决方案也不起作用,所以我决定使用cmd来修复它: 我检查了,结果

  • 问题内容: 尝试执行mvn全新安装时出现编译错误。 Java版本是 Maven版本 Pom.xml 任何帮助,将不胜感激。 问题答案: 问题是您的maven使用的是Java 5(正如您的评论所述)。您必须将JAVA_HOME变量更改为指向jdk 6或更高版本。看着 : 使用javac时出错:“javac:无效标志:-s”

  • 我在尝试执行mvn clean安装时遇到编译错误。 Java版本是 Maven版本 Pom.xml 任何帮助将不胜感激。

  • 编译失败;有关详细信息,请参阅编译器错误输出。 用户类: Myapplication文件 尝试:使用--info或--debug选项运行以获取更多日志输出。

  • 无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:在项目gameoflife上编译(default-compile)-core:编译失败[错误]此环境中未提供编译器。也许您运行的是JRE而不是JDK? 我已经在我的机器上安装了Java,但仍然面临这个问题。 我在做EC2。

  • 鉴于以下情况: 检查我的和versions是否正确: 不确定我的< code>brew安装的< code>mvn是否有问题,我将其移除并下载了< code>mvn-...来自Apache的bin.zip然后我设置了我的路径,验证了< code>mvn -version和< code>java -version输出的是相同的版本。但是,我仍然有同样的问题。 我查看了前3个(来自搜索)StackOve