Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
tools.jar未打包到maven包中。获取java.lang.NoClassDefFoundError:com/sun/tools/javadoc/Main_Java_Eclipse_Maven_Noclassdeffounderror_Umlgraph - Fatal编程技术网

tools.jar未打包到maven包中。获取java.lang.NoClassDefFoundError:com/sun/tools/javadoc/Main

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> <

我创建了一个maven项目,需要包含tools.jar。我已经将jar添加到lib文件夹中,并在pom.xml中包含以下内容

<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>