JAVAFx构建失败

时间:2014-07-19 12:30:49

标签: java eclipse macos build javafx-8

我使用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

非常感谢你的帮助!

6 个答案:

答案 0 :(得分:15)

您需要在Prefereces-&gt; Java-&gt;已安装的JRE中将jdk设置为jre,并将其检查为&#34;单独的jre&#34;在外部工具配置 - &gt; Eclipse中的JRE

编辑: 运行&gt;外部工具&gt;外部工具配置

enter image description here

enter image description here

enter image description here

答案 1 :(得分:4)

当你新建JavaFX项目时,生成的文件build.xml可能有错误的文件路径。

&#13;
&#13;
<?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;
&#13;
&#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

所以现在我只找到自己修改的方法......

&#13;
&#13;
<?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;
&#13;
&#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中所做的工作。

  1. 卸载所有(增量)Java安装(JDK,JRE)
  2. 使用JRE安装最新的(需要的)Java JDK
  3. 在Eclipse中将默认Java设置为 JDK (Windows->“首选项”-> Java->已安装的JRE)
  4. 在Eclipse中将单独的JRE 设置为 JDK (运行->外部工具->外部工具配置)
  5. 清洁项目
  6. build.fxbuild-> ant build.xml并运行