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

问题描述 投票:0回答:1

我创建了一个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>

[还添加了以下插件来创建项目的可执行jar。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>umlparser.Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>

我使用“ MVN清洁包装组装件:单个”制造了罐子这样就创建了一个名为myproject-jar-with-dependencies的可执行jar文件。

但是当我尝试使用java -jar运行jar文件时,无法获取tools.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

但是当我从eclipse中将其导出为可运行的jar时,它可以按预期工作。Maven包有什么问题?我在这里想念什么吗?

编辑

我试图从java_home而不是项目路径中导入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>

还是我遇到同样的问题。

注意:我的程序中未使用tools.jar。我所包含的一个罐子正在使用它-“ UMLGraph.jar”。

java eclipse maven noclassdeffounderror umlgraph
1个回答
0
投票

您添加的com.sun:tools依赖项具有system范围。具有providedsystem范围的依赖项将不包括在此类打包的工件中。

© www.soinside.com 2019 - 2024. All rights reserved.