【发布时间】:2010-12-22 19:13:10
【问题描述】:
执行 maven 生成的可执行 jar 时遇到(一个奇怪的)问题:
user@host$ java -server -jar MyJar.jar
Error
(仅此而已!!!)
你知道这个错误之王是怎么来的吗?
在我的 pom.xml 中,我将所有依赖项复制到一个 lib 文件夹中:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${artifactId}-${version}/${artifactId}-${version}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
然后我生成一个包含类路径的 .jar(+ 指向 lib 文件夹的前缀):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/${artifactId}-${version}/${artifactId}-${version}/bin</outputDirectory>
<finalName>MyJar</finalName>
<archive>
<manifest>
<mainClass>
com.company.package.Main
</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>../lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
生成的 MANIFEST.MF 似乎包含正确的类路径。
非常感谢您的帮助!
【问题讨论】:
-
您使用的是哪个 JVM? Jar 文件的内容(除了 MANIFEST.MF)是否符合您的预期?
-
java version "1.6.0_03" Java(TM) SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-b05, 混合模式) 是的...内容正是我所期待的
标签: maven-2 jar executable