首先:我是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