...
Here are the tools required to build OpenJFX:
- JDK1.8 Snapshot release
- Ant 1.8.2
- Mercurial 1.8.2
- Cygwin (for Linux commands on Windows)
...
- mkdir -p ~/open-jfx
- cd ~/open-jfx
- hg clone http://hg.openjdk.java.net/openjfx/8/master
- cd master
- mkdir -p artifacts/sdk/rt/lib/ext
- cp -r <PATH TO JDK>JDK>jre/lib/ext/jfxrt.jar artifacts/sdk/rt/lib/ext
- hg clone http://hg.openjdk.java.net/openjfx/8/master/rt
- cd rt
- Edit build-defs.xml (comment out '<propertycopy name="javac.debuglevel" from="${ant.project.name}.javac.debuglevel" silent="true" override="true"/>' if not already commented)
- ant
Note: JDK1.8 and the JFX contained within are are moving target, so you may need to refresh your snapshot periodically to match the items you are building.
In addition, the following files need to be downloaded and placed in "open-jfx/lib":
- antlr-3.1.3.jar
- antlr-runtime-3.1.3.jar
- stringtemplate-3.2.jar
Certain parts of JFX, e.g. JavaFX/SWT classes in rt/javafx-embed-swt, depend on SWT being available at compile time. Environmental variable SWT_DIR or ant property swt.path can be used to specify a directory with swt.jar. If neither SWT_DIR nor swt.path are specified, no classes that depend on SWT are built. TODO: does it make sense to look for swt.jar in open-jfx/lib as well?
Here is the command line needed to run OpenJFX (using the controls jar from OpenJFX):
- java -cp ".:/Users/someone/Xbootclasspath/a:<PATH TO HOME DIR>/open-jfx/master/rt/javafx-ui-controls/dist/javafx-ui-controls.jar:<PATH TO JDK>/rt/lib/jfxrt.jar" test.HelloButton
The above command assumes that you have a class test.HelloButton and that your OpenJFX directory is /Users/someone/open-jfx. If you have multiple versions of java installed on your machine, make sure you use the java that matches jfxrt.jar.
Coming Soon: Gradle Build for OpenJFX
The OpenJFX team is working on a replacement for our current build and test system. We have chosen Gradle as the basis for this new system based on its IDE support, community support, flexibility, and great command line support. This new system is still just coming online and will likely be a work in progress until March 2013.