xmlbeans-maven-plugin没有找到javac

时间:2012-12-04 14:54:45

标签: maven javac m2e xmlbeans xmlbeans-maven-plugin

我正在尝试在我的Eclipse中设置xmlbeans-maven-plugin 2.3.3,而一切似乎都没问题,由于无法找到文件C:\Users\Daniel\Workspace\MyProject\javac而导致java.io.IOException失败。

这很奇怪,因为javac is在系统的%PATH%上,为什么它会尝试在%PROJECT_LOC%中找到它?

我发现this problem description听起来与我的非常相似,但是我将JDK路径放在所有其他路径之前,这没有帮助。

有什么想法如何告诉xmlbeans-maven-plugin 寻找javac

更新1:我尝试通过简单地将javac.exe复制到项目目录来解决此问题,至少现在找到它但问题仍然转移到:

java.lang.NoClassDefFoundError: com/sun/tools/javac/Main
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.Main
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main" Could not find the main class: com.sun.tools.javac.Main.  Program will exit.

任何有助于提出正确的解决方案的见解(例如.m2/settings.xml中的内容?)将不胜感激。

更新2 :我也在搜索中找到了this little solution

<settings 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/xsd/settings-1.0.0.xsd">
  <localRepository>c:\maven\repository</localRepository>
   <configuration>
    <compiler>C:\Program Files (x86)\Java\jdk1.6.0_37\bin\javac.exe</compiler>
   </configuration>
</settings>

但这并没有帮助插件找到javac。它仍然抱怨“系统无法找到javac.exe指定的文件”。

1 个答案:

答案 0 :(得分:2)

找到解决方案!在项目的 pom.xml中,只需在<configuration>内添加以下内容:

<compiler>C:\Program Files (x86)\Java\jdk1.6.0_37\bin\javac.exe</compiler>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>xmlbeans-maven-plugin</artifactId>
            <version>2.3.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>xmlbeans</goal>
                    </goals>
                </execution>
            </executions>
            <inherited>true</inherited>
            <configuration>
                <schemaDirectory>${basedir}/src/main/xsd</schemaDirectory>
                <compiler>C:\Program Files (x86)\Java\jdk1.6.0_37\bin\javac.exe</compiler>
            </configuration>
        </plugin>

另外,请务必将Window -> Preferences -> Java -> installed JREs指向JDK,而不是JRE:C:\Program Files (x86)\Java\jdk1.6.0_37。如上所述in this thread