2014-07-19 211 views
4

我爲Windows創建了一個JavaFx應用程序,這非常酷。我可以從e(fx)clipse運行它,everthing可以正常工作,但是我無法從項目中創建一個jar文件。 我可以導出它(右鍵單擊 - >導出 - >可運行jar文件)。但是,如果我在MAC OS X上運行jar,在菜單欄中,我會得到「java」menuitem,而不是我的應用程序名稱,而我真的不喜歡它。 我搜索瞭如何隱藏該菜單項,或者只是將其重命名,我發現我必須重命名build.fxbuild文件中的「應用程序標題*」。現在我無法建立它。JAVAFx構建失敗

所以這就是我真正想要的:在Mac OS X中刪除/隱藏/重命名「java」menuitem。 如果您有任何經驗,請與我分享。我會很感激:)。

我收到以下錯誤,當我嘗試運行build.xml文件:

[javac] Compiling 22 source files to C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\build\classes 
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.7 
[javac] Note: C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\build\src\application\SajátKészlet.java uses unchecked or unsafe operations. 
[javac] Note: Recompile with -Xlint:unchecked for details. 
[javac] 1 warning 
[copy] Copying 12 files to C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\build\classesinit 

    -fx-tasks: 
    [taskdef] Could not load definitions from resource com/sun/javafx/tools/ant/antlib.xml. It could not be found. 
do-deploy: 
    [copy] Copying 20 files to C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\dist\libs 

BUILD FAILED 
C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\build.xml:217: Problem: failed to create task or type javafx:com.sun.javafx.tools.ant:resources 
Cause: The name is undefined. 
Action: Check the spelling. 
Action: Check that any custom tasks/types have been declared. 
Action: Check that any <presetdef>/<macrodef> declarations have taken place. 
No types or tasks have been defined in this namespace yet 


Total time: 22 seconds 

** 我用: -Windows 7 64位 -jdk 8 U5 -JAVA_HOME設置 - e(fx)clipse(開普勒),我下載了All-in-one版本(適用於懶惰link

非常感謝您的幫助!

回答

4

當您新建JavaFX項目時,生成的文件build.xml可能有錯誤的文件路徑。

<?xml version="1.0" encoding="UTF-8"?> 
 
\t <project name="App2" default="do-deploy" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant"> 
 
\t <target name="init-fx-tasks"> 
 
\t \t <path id="fxant"> 
 
\t \t \t <filelist> 
 
\t \t \t \t <file name="${java.home}\..\lib\ant-javafx.jar"/> <!-- wrong path --> 
 
\t \t \t \t <file name="${java.home}\lib\jfxrt.jar"/> <!-- wrong path --> 
 
\t \t \t </filelist> 
 
\t \t </path> 
 
\t 
 
\t \t <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"  
 
\t \t \t uri="javafx:com.sun.javafx.tools.ant" 
 
\t \t \t classpathref="fxant"/> 
 
\t </target>

你必須檢查哪裏都是螞蟻javafx.jar和jfxrt.jar? 例如,JDK 1.8這兩個文件在不同的地方, C:\ Program Files \ Java \ jdk1.8.0_20 \ lib \ ant-javafx.jar C:\ Program Files \ Java \ jre1.8.0_20 \ LIB \分機\ jfxrt.jar

所以現在我只找到自己修改的方式...

<?xml version="1.0" encoding="UTF-8"?> 
 
\t <project name="App" default="do-deploy" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant"> 
 
\t <target name="init-fx-tasks"> 
 
\t \t <path id="fxant"> 
 
\t \t \t <filelist> 
 
\t \t \t \t <file name="C:\Program Files\Java\jdk1.8.0_20\lib\ant-javafx.jar"/> 
 
\t \t \t \t <file name="C:\Program Files\Java\jre1.8.0_20\lib\ext\jfxrt.jar"/> 
 
\t \t \t </filelist> 
 
\t \t </path> 
 
\t 
 
\t \t <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"  
 
\t \t \t uri="javafx:com.sun.javafx.tools.ant" 
 
\t \t \t classpathref="fxant"/> 
 
\t </target>

修改後的文件,右擊選擇運行方式Ant構建!

2

我有改動較小一點更好的解決方案:

此修復路徑問題(只需添加分機\來解決問題)

<path id="fxant"> 
    <filelist> 
     <file name="${java.home}\..\lib\ant-javafx.jar"/> 
     <file name="${java.home}\lib\ext\jfxrt.jar"/> 
    </filelist> 
</path> 

在此之前,你需要有一個jdk1.8 .xxx在您安裝的JRE列表中,而不是包含在jdk包中的jre,而是jdk本身。
接下來,在Run \ External Tools \ External Tools Configuration中打開JRE選項卡並檢查執行環境是否爲CDC-1.1/Foundation-1.1(jdk1.8.xxx)
就這樣!

+0

嗨如何做到這一點,我的意思是我怎麼可以在列表中的JRE JDK?我已經修改了我的eclipse.ini文件,但什麼都沒有發生...... :( – Wolverine

12

你需要安裝JDK在Prefereces- JRE> Java的>安裝的JRE,並選中它作爲外部工具「獨立JRE」配置 - > JRE在Eclipse

編輯的情況下: 運行>外部工具>外部工具配置

enter image description here

enter image description here

enter image description here

0

我知道我有點晚了回答這個問題,但我們很多人還在用這個問題,在我的情況下掙扎,我找不到任何地方一個合適的回答。

在我來說,當我得到了同樣的問題,我設法得到它要運行 - >外部工具_>外部工具的配置和選擇JRE選項卡工作。我必須將執行環境從1.7更改爲CDC-1.0/Foundation-1.0(jdk1.7.0_25)(並且CDC-1.1也可以)。

對於螞蟻來說絕對是一種新鮮事物,所以不確定爲什麼懶惰安裝不能正確地拾取路徑,但希望這可以在其他人在到達excedrin之前敲擊他們的頭部時派上用場。

+0

你似乎在描述相同的溶液,作爲一個由魯斯蘭Neruka。 – Daddy32