2009-01-31 79 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> 
... 
相關問題