2014-07-19 209 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