在Mac的jdk 1.7中,com.sun.tools.javah.Main的位置從classes.jar移到了tools.jar。因此,Maven的Maven的antrun-插件無法找到運行JAVAH任務和ClassNotFound的異常被拋出:在jdk 1.7中使用javah maven-antrun-plugin,classes.jar變成了tools.jar
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javah.Main
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java :50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.apache.tools.ant.taskdefs.optional.javah.SunJavah.compile(SunJavah.java:57)
... 47 more
1.7地點:/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/lib /tools.jar
1.6地點:/Library/Java/JavaVirtualMachines/1.6.0_32-b05-420.jdk/Contents/Classes/classes.jar
這似乎是行家的3.0版中的錯誤或失敗0.4。我考慮製作tools.jar插件依賴項,但這看起來不太合適。我嘗試了這些解決方案,但我不能讓他們的工作:
JDK tools.jar as maven dependency
maven: How to load tools.jar/classes.jar in an OS independent way?
的任何工作,直到周圍的鄉親行家解決Maven的antrun-插件兼容Mac JDK-1.7?