第一步当然是下载源代码,需要安装mercurial,在Ubuntu上可以直接使用apt安装:
sudo apt install mercurial
然后可以使用hg命令下载到最新的openjfx8的代码:
hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt
首先,编译OpenJFX8必须要依赖OpenJDK8,可以通过如下方式安装:
sudo apt install openjdk-8-jdk
在Ubuntu18.04上,还需要使用如下依赖:
sudo apt-get install ksh bison flex gperf libasound2-dev libgl1-mesa-dev \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libjpeg-dev \
libpng-dev libx11-dev libxml2-dev libxslt1-dev libxt-dev \
libxxf86vm-dev pkg-config x11proto-core-dev \
x11proto-xf86vidmode-dev libavcodec-dev mercurial \
libgtk2.0-dev libgtk-3-dev \
libxtst-dev libudev-dev libavformat-dev ant
如果要编译WebKit,需要包含cmake和ruby:
sudo apt-get install cmake ruby
设置环境变量JDK_HOME和JAVA_HOME,一般openjdk安装路径是/usr/lib/jvm/java-8-openjdk-amd64:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export JDK_HOME=$JAVA_HOME
在源码路径下,有gradlew文件,直接执行它就可以了。但是默认情况下,编译过程是不包含WebKit的,如果想默认编译WebKit,需要加上编译选项“-PCOMPILE_WEBKIT=true”。
例如,如果想编译并测试,可以使用如下命令:
./gradlew -PCOMPILE_WEBKIT=true build
编译出的文件会放到源码目录中的build目录下。
如果想打包出最终的zip文件,可以使用如下命令:
./gradlew -PCOMPILE_WEBKIT=true openZipLinux
执行结束后会在build/bundles目录下生成一个名字叫javafx-sdk-overlay.zip的压缩文件。
直接将前面一步生成的压缩文件中的内容解压缩到OpenJDK的安装目录下就可以了,注意权限。