我正在尝试在我的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指定的文件”。
答案 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。