在没有NetBeans的情况下构建JavaFX项目

时间:2009-01-31 19:55:38

标签: java eclipse ant javafx

我正在尝试学习JavaFX并且可能会创建一些“学习者”游戏。我总是在Eclipse中进行开发,而不是JavaFX团队明显试图推动的NetBeans。

有人能指出我在Eclipse中构建JavaFX项目的方法,或者至少构建一个没有 NetBeans的JavaFX项目吗?到目前为止我发现的所有东西都使用NetBeans,或者他们在Eclipse中运行一个单文件项目(对于大型项目不会起作用)。理想情况下,我正在寻找一个建立一个简单的Ant脚本来构建一个JavaFX项目的人,因为我认为这是这种情况的最终游戏。

我能够找到下载Eclipse JavaFX plugin的位置。它提供语法突出显示支持,以及一些“片段”。我甚至可以用它来运行简单的hello world类型的JavaFX应用程序,但我似乎无法让它自动构建多文件JavaFX项目。即使我可以,我似乎仍然无法编写正确的ant脚本来破坏JavaFX项目。

另外,我发现this site讨论了如何使用Sun(?)创建的 javafxc Ant任务,但是我没有运气试图使用他们谈论的是什么。

由于

罗斯

5 个答案:

答案 0 :(得分:4)

如果在NB中创建新项目,则会有名为nbproject的文件夹。此文件夹包含build-impl.xml。此文件包含此目标:

<target if="src.dir" name="-compile-fx">
    <taskdef classname="com.sun.tools.javafx.ant.JavaFxAntTask" classpath="${platform.bootcp}" name="javafxc"/>
    <javafxc bootclasspath="${platform.bootcp}" classpath="${build.classes.dir}:${javac.classpath}" compilerclasspath="${platform.bootcp}" debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${build.classes.dir}" excludes="${excludes}" fork="yes" includeJavaRuntime="false" includeantruntime="false" includes="**/*.fx" source="${javac.source}" sourcepath="" srcdir="${src.dir}" target="${javac.target}">
        <compilerarg line="${javac.compilerargs}"/>
    </javafxc>
</target>

这是为Eclipse创建ant的良好开端。我不确定Eclipse的构建是如何工作的,但可能存在局限性。 com.sun.tools.javafx.ant.JavaFxAntTask位于SDK中,而不是编译器jar中。祝你好运!。

答案 1 :(得分:1)

我在关于JavaFX的文章中已经阅读过有一个Eclipse扩展可用。根据那篇文章,它不像NetBeans对FX的支持那么成熟,但应该比没有更好......

答案 2 :(得分:1)

我为构建过程创建了一个部分Ant脚本。我可以说它实际上正在编译JavaFX类并对其进行Jared。但是,我我错过了一个Ant任务,在那里我创建了小程序中需要的 JNLP 对象,我也缺少了(但设法假装)。

由于我没有明确说明,我没有将其置于工作状态,所以不要指望只是通过做我做的事情到达那里;)

这个Ant脚本就像我一样。为了简洁,我遗漏了除了重要部分之外的一切......

<project name="RABfx" default="all" basedir=".">
    ... 
    <property environment="env"/>
    <property name="java.home" value="${env.JAVA_HOME}" />
    <property name="jfx.home" value="${env.JAVAFX_HOME}" />
    <path id="compile.classpath">
        <fileset dir="${java.home}/lib">
            <include name="**/*.jar" />
        </fileset>
        <fileset dir="${jfx.home}/lib">
            <include name="**/*.jar" />
        </fileset>
        ...
    </path>

    <taskdef classname="com.sun.tools.javafx.ant.JavaFxAntTask" name="javafxc">
        <classpath refid="compile.classpath" />
    </taskdef>

    ...

    <target name="compile">
        <javac srcdir="${src}" destdir="${src.classes}" includes="**/*.java">
            <classpath refid="compile.classpath" />
        </javac>
        <javafxc srcdir="${src}" destdir="${src.classes}" includes="**/*.fx" executable="${jfx.home}/bin/javafxc.exe">
            <classpath refid="compile.classpath" />
        </javafxc>
        ...
    </target>

    <target name="build">
        <jar jarfile="${src.jar}">
            <fileset dir="${src.classes}" />
        </jar>
    </target>
    ...
</project>

另外,我的“伪造”Applet ......

...
<script src="http://dl.javafx.com/dtfx.js"></script>
<script>
    javafx(
        {
            archive: "RABfx.jar",
            width: 440,
            height: 560,
            code: "TicTacToe.Main",
            name: "TicTacToe"
        }
    );
</script>
...

答案 3 :(得分:1)

在我提出这个问题后,发布了一个官方(我认为?)Eclipse的JavaFX插件。转到the JavaFX for Eclipse页面。我安装了插件,一切都自动化了!

答案 4 :(得分:0)

使用之前提到的JavaFxAntTask或在NetBeans中生成项目并在Eclipse中打开它,然后您就可以运行Ant目标。或者等待1.1,希望有完整的Eclipse和IDEA支持。