tools.jar未打包到maven包中。获取java.lang.NoClassDefFoundError:com/sun/tools/javadoc/Main
我创建了一个maven项目,需要包含tools.jar。我已经将jar添加到lib文件夹中,并在pom.xml中包含以下内容tools.jar未打包到maven包中。获取java.lang.NoClassDefFoundError:com/sun/tools/javadoc/Main,java,eclipse,maven,noclassdeffounderror,umlgraph,Java,Eclipse,Maven,Noclassdeffounderror,Umlgraph,我创建了一个maven项目,需要包含tools.jar。我已经将jar添加到lib文件夹中,并在pom.xml中包含以下内容 <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <scope>system</scope> <
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<scope>system</scope>
<version>1.8.0</version>
<systemPath>${project.basedir}\src\lib\tools.jar</systemPath>
</dependency>
但是,当我从eclipse将其导出为可运行jar时,它的工作情况与预期的一样。
maven包有什么问题?我是不是遗漏了什么
编辑
我尝试从java_主页而不是项目路径导入tools.jar依赖项
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8.0_241</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
com.sun
工具
1.8.0_241
系统
${java.home}/./lib/tools.jar
但我还是遇到了同样的问题
注意:我的程序中没有使用tools.jar。我所包含的一个jar正在使用它——“UMLGraph.jar” 您添加的
com.sun:tools
依赖项具有系统
范围。具有提供的
和系统
作用域的依赖项将不包括在此类打包工件中
特别是在这种情况下,您实际上也应该而不是这样做,因为这个jar是作为JDK的一部分提供的。jar的用户将有一个JDK/JRE来运行代码,如果您包含tools
jar,您很可能会与他们的JDK/JRE发生冲突,而您确实不想这样做
话虽如此,您可能可以尝试使用dependencySet
和范围的系统
,但我真的不建议这样做(即使这样做了)
我假设在运行这个jar的系统上,路径上没有JDK,而只有JRE。如果你解决了这个问题,你就不必进行任何非常规的黑客攻击。谢谢你的回复。我在我的本地计算机上运行这个程序,它安装了JDK。Java_主路径也在环境变量中正确设置为JDK路径。即使在依赖项中不包含tools.jar,我也会遇到同样的问题。我试着从java_home把它包括进去,但没有成功com.sun tools 1.8.0241system${java.home}/./lib/tools.jar
我的程序中也没有使用tools.jar。我所包含的一个jar正在使用它——“UMLGraph.jar”。
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javadoc/Main
at org.umlgraph.doclet.UmlGraph.main(UmlGraph.java:70)
at umlparser.Main.main(Main.java:19)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javadoc.Main
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)
... 2 more
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8.0_241</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>