2013-02-27 84 views
2

我製作了一個javafx應用程序窗體,我得到一個可執行的jar作爲輸出。 現在我的javafx應用程序依賴於兩個第三方jar,如commons.io.2.4.jar。如何獲得可執行的javafx jar與依賴jar包捆綁?

目前運行我的申請,我必須保持這些依賴罐子在我的可執行的JAR文件的類路徑這樣

--------Application.jar 
----------[Classpath Folder]\dependend.jar files 

但我想所有的依賴罐子得到捆綁在我的可執行的JAR文件本身。

因爲JavaFX的使用Ant構建我嘗試使用

<jar destfile="application.jar"> 
     <zipfileset src="Dependent.jar" /> 
</jar> 

但捆綁所有的依賴罐子後我沒有收到可執行的JAR文件。我不知道問題出在哪裏。

我也試過<fx:jar> </fx:jar>標籤相同,但無法弄清楚如何完全達到我的要求。

這是文件如何表現有點樣子:

Manifest-Version: 1.0 
implementation-vendor: dhruv1767 
JavaFX-Version: 2.2 
implementation-title: LogsDeObfuscator 
implementation-version: 1.0 
JavaFX-Application-Class: com.liaison.controller.LogsDeObfuscator 
JavaFX-Class-Path: lib/allatori.jar lib/commons-io-2.4.jar 
Created-By: JavaFX Packager 
Main-Class: com/javafx/main/Main 

Name: com/javafx/main/Main.class 
SHA-256-Digest: j0IuLabX3l0TgeO1+UqESD6fWA09lNsuiTtr4eue1HU= 

Name: com/liaison/controller/LogsDeObfuscator.class 
SHA-256-Digest: AysvgvCJeJoRdCpqu1xC8JDKttGWUQR4ce8jVW/kLDY= 

Name: com/liaison/controller/Delta.class 
SHA-256-Digest: TkQcfU1YWr6UwkiIj2IJpFi4UirQK7pDL26pVnAjVYM= 
+0

是Dependent.jar存在於application.jar的班? application.jar的Manifest文件是什麼樣子的? – Puce 2013-02-27 21:10:43

+0

@Puce在應用程序jar中沒有不存在相關jar的類...實際上,這就是我想要的 – dhroove 2013-02-28 04:40:36

+1

@Puce在問題 – dhroove 2013-02-28 04:44:25

回答

1

有一點需要注意的是,如果任何依賴JAR本身包含清單。

<jar destfile="application.jar"> 
    <zipfileset src="Dependent.jar" excludes="META-INF/MANIFEST.MF/> 
</jar> 
0

我以前我用exe4j的爲了這個,我添加了所有需要和exe4j的bundeled他們都在一個罐子面臨同樣的問題。這對我有用。確保在添加jar時添加主Jar的Main類路徑。

0

試試這個:

http://www.zenjava.com/2012/11/24/from-zero-to-javafx-in-5-minutes/

Maven是必需的,但會讓你加入下議院IO相關性的管理單元。

按照指示,我能夠爲Ubuntu製作可執行JAR和本地安裝程序。可執行JAR生成使用此命令完成:

mvn jfx:build-jar 

從鏈接工作中獲取示例項目。然後將依賴關係添加到POM文件。

<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>2.4</version> 
</dependency> 

然後,您可以將您現有的代碼移動到Maven管理的JavaFX項目。

更多詳細信息的鏈接,而是要產生一機安裝運行此命令:

mvn jfx:build-native