Я создал проект 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>
Я собрал jar, используя "сборку чистого пакета mvn: single". Это создало исполняемый файл jar с именем myproject-jar-with-dependencies.
Но когда я пытаюсь запустить jar файл с java -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
Но когда я экспортирую его как готовый jar-файл из затмения, он работает как положено. В чем проблема с пакетом Maven? Я что-то здесь упускаю?
РЕДАКТИРОВАТЬ
Я попытался импортировать зависимость tools.jar из java_home вместо пути проекта.
<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 не используется в моей программе. Он используется одним из включенных мной jar-файлов - «UMLGraph.jar».