我使用JavaFx for windows创建了一个应用程序,这非常酷。我可以从e(fx)clipse运行它,everthing工作正常,但我无法从项目中创建一个jar文件。 我可以导出它(右键单击>导出 - > Runnable Jar文件)。但是,如果我在MAC OS X上运行jar,在菜单栏中我得到“java”menuitem而不是我的应用程序名称,我真的不喜欢。 我搜索了如何隐藏该menuitem,或者只是重命名它,我发现我必须在build.fxbuild文件中重命名“Application title *”。现在我无法建立它。
所以这就是我真正想要的:在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 64bit -jdk 8 u5 -JAVA_HOME已设置 -e(fx)clipse(开普勒),我下载了一体机版本(适用于懒惰的link)
非常感谢你的帮助!
答案 0 :(得分:15)
您需要在Prefereces-&gt; Java-&gt;已安装的JRE中将jdk设置为jre,并将其检查为&#34;单独的jre&#34;在外部工具配置 - &gt; Eclipse中的JRE
编辑: 运行&gt;外部工具&gt;外部工具配置
答案 1 :(得分:4)
当你新建JavaFX项目时,生成的文件build.xml可能有错误的文件路径。
<?xml version="1.0" encoding="UTF-8"?>
<project name="App2" default="do-deploy" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
<target name="init-fx-tasks">
<path id="fxant">
<filelist>
<file name="${java.home}\..\lib\ant-javafx.jar"/> <!-- wrong path -->
<file name="${java.home}\lib\jfxrt.jar"/> <!-- wrong path -->
</filelist>
</path>
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant"
classpathref="fxant"/>
</target>
&#13;
你必须检查ant-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 \ ext \ jfxrt.jar
所以现在我只找到自己修改的方法......
<?xml version="1.0" encoding="UTF-8"?>
<project name="App" default="do-deploy" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
<target name="init-fx-tasks">
<path id="fxant">
<filelist>
<file name="C:\Program Files\Java\jdk1.8.0_20\lib\ant-javafx.jar"/>
<file name="C:\Program Files\Java\jre1.8.0_20\lib\ext\jfxrt.jar"/>
</filelist>
</path>
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant"
classpathref="fxant"/>
</target>
&#13;
修改文件后,右键单击选择Run as Ant Build!
答案 2 :(得分:2)
我有一个更好的解决方案,修改较少:
此修复路径问题(只需添加\ text \以解决问题)
<path id="fxant">
<filelist>
<file name="${java.home}\..\lib\ant-javafx.jar"/>
<file name="${java.home}\lib\ext\jfxrt.jar"/>
</filelist>
</path>
在执行此操作之前,您需要在已安装的JRE列表中安装jdk1.8.xxx,而不是jdk包中包含的jre,而是jdk本身。
接下来,在Run \ External Tools \ External Tools Configuration中打开JRE选项卡,检查执行环境是否为CDC-1.1 / Foundation-1.1(jdk1.8.xxx)
这就是全部!
答案 3 :(得分:0)
我知道我回答这个问题有点晚了,但是我们这么多人仍在努力解决这个问题,在我看来,我无法在任何地方找到合适的答案。
就我的情况而言,当我遇到同样的问题时,我设法通过转到Run-&gt;外部工具_&gt;外部工具配置并选择JRE选项卡来实现它。我不得不将执行环境从1.7更改为CDC-1.0 / Foundation-1.0(jdk1.7.0_25)(并且CDC-1.1也可以)。
当涉及到蚂蚁时,肯定是一个新手,所以不确定为什么懒人装置没有正确地拾取路径,但希望这对于其他人在到达excedrin之前敲击他们的头部会派上用场。 / p>
答案 4 :(得分:0)
我也遇到了同样的问题
<?xml version="1.0" encoding="UTF-8"?>
<project name="App2" default="do-deploy" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
<target name="init-fx-tasks">
<path id="fxant">
<filelist>
<file name="${java.home}\..\lib\ant-javafx.jar"/> <!-- wrong path -->
<file name="${java.home}\lib\jfxrt.jar"/> <!-- wrong path -->
</filelist>
</path>
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant"
classpathref="fxant"/>
</target>
从此删除了中间的..
---文件名=“ $ {java.home} \ lib \ ant-javafx.jar” ---
然后我遇到了错误
为此,我评论了basedir部分,还引用了$ {basedir}的outdir路径
\ build / deploy“ outfile =“ addressApp” nativeBundles =“ exe” updatemode =“ background”>
<!--<fx:platform basedir="${java.home}"/>--> <------ comment Here
<fx:info title="addressApp" vendor="makery.ch"/>
<fx:application refId="fxApplication"/>
<fx:resources refid="appRes"/>
</fx:deploy>
以上,我看到了这个https://github.com/reds-heig/logisim-evolution/issues/135
构建成功后,在deploy文件夹中生成了exe文件。
感谢StackOverflow偷窥
答案 5 :(得分:0)
我在Windows 8.1,Java 1.8.0_192,Eclipse Photon(4.8.0)和e(fx)clipse 3.3.0中所做的工作。