2009-01-31 72 views
2

我试图学习JavaFX并且可能创建一些“学习者”游戏。我总是在Eclipse中进行自己的开发,而不是JavaFX团队明确试图推动的NetBeans。构建没有NetBeans的JavaFX项目

任何人都可以指示我如何在Eclipse中构建JavaFX项目,或者至少构建一个JavaFX项目而不是 NetBeans?目前为止我发现的所有东西都使用NetBeans,或者他们在Eclipse中运行一个文件项目(女巫不适用于大型项目)。 Idealy,我正在寻找一位建立了一个简单的Ant脚本的人来构建一个JavaFX项目,因为我认为这是针对这种情况的最终游戏。

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

另外,我发现this site,大约可以做,以使用由Sun(?)创建的javafxc Ant任务是什么说话,但我没有任何运气试图用他们谈什么。

感谢

罗斯

回答

1

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

1

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

+0

我用Ganymede试过了,没有运气。我无法找到很多信息,所以我不知道他们是否在寻求帮助。 – 2009-02-02 07:54:48

+0

我再次找到了项目链接。这是http://kenai.com/projects/eplugin – 2009-02-02 08:10:05

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中。祝你好运!。

0

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

1

我已经为构建过程创建了部分Ant脚本。我可以告诉它实际上正在编译JavaFX类并对它们进行Jaring。然而,我认为我错过了一个Ant任务,在那里我创建了JNLP对象,这个对象在Applet中需要,我也不知道(但是设法伪造)。

因为我没有明确说明,我没有得到这个工作状态,所以不要指望仅仅通过做什么,我做了到那里;)

这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> 
...