我正在尝试构建一个java应用程序并使用命令java -jar myapp.jar
来执行它。但是,它不断抛出ClassNotFoundException
外部库JSONObject
。
在搜索互联网后,我在org.apache.maven.plugins
添加了maven-dependency-plugin
,maven-assembly-plugin
和pom.xml
。目标目录包含libs
文件夹,其中包含应用程序所需的所有库。另外,我可以在Class-Path
中添加MANIFEST.MF
。
但是,当我尝试按java -jar myapp.jar
运行时,它仍会抛出ClassNotFoundException
的{{1}}。我不知道为什么,请帮忙。
JSONObject
MANIFEST.MF
答案 0 :(得分:0)
我找到了答案,那是因为Class-Path中的路径是lib
,但库文件夹是libs
!!!!
在我的pom.xml
中<!-- Build an executable JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
// error line
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.ics.monitorlogprocessor.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- Copy dependencies to the build directory (used to upload it later) -->
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
// the error line
<outputDirectory>${project.build.directory}/libs</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
如您所见,maven-jar-plugin
和maven-dependency-plugin
的配置未匹配。请注意,因为上面的配置是直接从旧问题复制。