我有這個問題,並找到了一個不需要修改cfg文件的類路徑的替代解決方案。我的方法使用Maven,但可以使用Ant或腳本完成;只需要更多的工作。這個想法是創建一個包含主jar和所有依賴jar的所有內容的jar文件。這可以用一個Maven插件,像這樣做:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.yourapp.MainClass</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
我執行階段設置爲prepare-package
,使其應用程序綁定前運行,但你可以改變需要。最終結果是一個名爲<appName>-<version>-jar-with-dependencies.jar
的單個jar包,其中包含所有依賴jar的提取內容。在與javapackager
一起使用之前,您可以使用java -jar <jarName>
進行測試。
謝謝你的建議。這很有效,但也可能會產生許可證影響,因爲它不一定可以重新打包從第三方收到的jar文件。所以,原始問題的解決方案仍然值得讚賞。 – ukor