使用Class-Path运行jar文件

时间:2017-06-30 07:31:08

标签: java

我正在尝试构建一个java应用程序并使用命令java -jar myapp.jar来执行它。但是,它不断抛出ClassNotFoundException外部库JSONObject

在搜索互联网后,我在org.apache.maven.plugins添加了maven-dependency-pluginmaven-assembly-pluginpom.xml。目标目录包含libs文件夹,其中包含应用程序所需的所有库。另外,我可以在Class-Path中添加MANIFEST.MF

但是,当我尝试按java -jar myapp.jar运行时,它仍会抛出ClassNotFoundException的{​​{1}}。我不知道为什么,请帮忙。

JSONObject

MANIFEST.MF

1 个答案:

答案 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-pluginmaven-dependency-plugin的配置未匹配。请注意,因为上面的配置是直接从旧问题复制。