首先:我是maven的新手。 我做了我的第一个Maven应用程序,并在IDE中成功测试了它。构建总是成功的,一切都像魅力一样。Maven可执行文件Jar在启动时抛出错误
现在我想将项目导出为内置依赖项的可执行jar,但我不确定它为什么不起作用。
添加以下到我的POM文件,因为这是我在不同的答案发现了类似的问题
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.pwc.scfa.pensareautomatio3.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
我明白,这指定的JVM启动主类,作为IDE不会自动设置。
我将jar放置在目标目录中,将其复制到另一个目录并尝试执行它。
可悲的是下面的错误抛出:
能否请你给我一个提示,我在那里可能出现了问题?那太好了。 (我使用NetBeans,如果这是任何帮助。)
这里是我的堆栈跟踪:
C:\Users\scfa\Desktop>java -jar PensareAutomatio-1.1.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxm
l4j/exceptions/InvalidFormatException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions
.InvalidFormatException
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)
... 7 more
谢谢:)
你可以使用归档工具(如7zip或winrar)打开jar文件吗?如果是这样,你可以发布它的内容? 也尝试从命令行运行它来查看堆栈跟踪(在Windows中使用cmd,导航到包含该jar文件夹并键入“java -jar myjar.jar” – gybandi