Ok, I setup a fresh Ubuntu 12.0.4 server install on a VM (32 bit this time), installed Gradle 1.8, Oracle JDK 1.8u25 (x86 version, removed the existing jfxrt.jar), grabbed all the latest OpenJFX source and Pi/Arm tool chain and rebuilt. I copied the resulting contents of ./rt/build/armv6hf-sdk/rt over the top of JDK_HOME/jre/ on my Pi, but I'm still hitting a link error when running a JavaFX app:
pi@raspberrypi ~ $ java -jar JavaFXApp.jar Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: com.sun.glass.ui.monocle.linux.Udev._open()J at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:296) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) ... 5 more Caused by: java.lang.UnsatisfiedLinkError: com.sun.glass.ui.monocle.linux.Udev._open()J at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) at com.sun.glass.ui.monocle.linux.Udev.<init>(Udev.java:68) at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) at com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.<init>(LinuxInputDeviceRegistry.java:77) at com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry(LinuxPlatform.java:19) at com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry(NativePlatform.java:58) at com.sun.glass.ui.monocle.MonocleApplication.<init>(MonocleApplication.java:78) at com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication(MonoclePlatformFactory.java:45) at com.sun.glass.ui.Application.run(Application.java:145) at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) ... 9 more pi@raspberrypi ~ $ which java /opt/java/bin/java I look at a couple of libs within the ./jre/lib/arm folder (one I replaced, one original): pi@raspberrypi /opt/java/jre/lib/arm $ file libjava.so libjava.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x85ac21c4b5e873e5ed15d80b0e64fb4c38122e8f, not stripped pi@raspberrypi /opt/java/jre/lib/arm $ file libjavafx_iio.so libjavafx_iio.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xd4b0794ac7451d58e5bf2ab6d8c856b2aa0005e5, not stripped So the latter looks correct (the former was supplied by Oracle) My C knowledge is extremely rusty (like 15 years old), and that was mostly on MS Windows - how do I check which shared lib contains the com.sun.glass.ui.monocle.linux.Udev._open()J method? Perhaps this is a gcc/link problem - did I use a different version of the compiler than I was supposed to and my version has mangled things differently, or did I install all the .so files in the wrong place (I put them all in /opt/java/jre/lib/arm): pi@raspberrypi /opt/java/jre/lib/arm $ ls -la | grep "Dec 30" drwxr-xr-x 12 pi pi 4096 Dec 30 07:46 .. -rwxrwxr-x 1 pi pi 61200 Dec 30 07:54 libdecora_sse.so -rwxr-xr-x 1 pi pi 134489 Dec 30 07:54 libfxplugins.so -rwxrwxr-x 1 pi pi 31428 Dec 30 07:54 libglass_monocle.so -rwxrwxr-x 1 pi pi 15946 Dec 30 07:54 libglass_monocle_x11.so -rwxrwxr-x 1 pi pi 193850 Dec 30 07:54 libglass.so -rwxr-xr-x 1 pi pi 1530711 Dec 30 07:54 libgstreamer-lite.so -rwxrwxr-x 1 pi pi 23301 Dec 30 07:54 libjavafx_font_freetype.so -rwxrwxr-x 1 pi pi 20564 Dec 30 07:54 libjavafx_font_pango.so -rwxrwxr-x 1 pi pi 14950 Dec 30 07:54 libjavafx_font.so -rwxrwxr-x 1 pi pi 218614 Dec 30 07:54 libjavafx_iio.so -rwxr-xr-x 1 pi pi 224345 Dec 30 07:54 libjfxmedia.so -rwxr-xr-x 1 pi pi 30879536 Dec 30 07:54 libjfxwebkit.so -rwxrwxr-x 1 pi pi 42591 Dec 30 07:54 libprism_common.so -rwxrwxr-x 1 pi pi 59640 Dec 30 07:54 libprism_es2_eglfb.so -rwxrwxr-x 1 pi pi 54149 Dec 30 07:54 libprism_es2_monocle.so -rwxrwxr-x 1 pi pi 56508 Dec 30 07:54 libprism_sw.so *Compile machine (Ubuntu 12 ISO):* @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ uname -a Linux ubuntu 3.13.0-43-generic #72~precise1-Ubuntu SMP Tue Dec 9 12:14:42 UTC 2014 i686 i686 i386 GNU/Linux @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ gcc --version gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.5 LTS Release: 12.04 Codename: precise On Tue, Dec 30, 2014 at 6:40 AM, Jens Kapitza <j.kapi...@schwarze-allianz.de > wrote: > Hi Nick, > > i've read you found a solution, i had the same Problem (linux.grandle) > > in build folder there were some empty build files. as far as i can > remember linux_tools.... > the script tries to find cflags and linker options but there is an empty > file (i've just deleted this file, clean rebuild works) > > > the error with grandle 1.8 was behind this line 78 ^^ > > > > for the link errors; have you copied the libs (.so) files into your > openjdk build (after the build there is a sdk folder with libs and jar) > > the so file have to be in the openjdk lib folder or (i think should work > somewhere below /usr/lib > > > -- > Jens Kapitza > > Am 29.12.2014 um 01:35 schrieb Nick Pratt: > >> Does anyone have any tips on getting Openjfx (latest source as of >> 2014-12-28 19:00 EST) to build on a Centos 6.6 box? >> >> Im following the wiki for Linux builds and grabbed Gradle 1.8 (does the >> latest 2.2 work?) but Im failing to build with the following error: >> >> [work@nyprod1 rt]# /opt/gradle/bin/gradle >> >> :buildSrc:generateGrammarSource UP-TO-DATE >> >> :buildSrc:compileJava UP-TO-DATE >> >> :buildSrc:compileGroovy UP-TO-DATE >> >> :buildSrc:processResources UP-TO-DATE >> >> :buildSrc:classes UP-TO-DATE >> >> :buildSrc:jar UP-TO-DATE >> >> :buildSrc:assemble UP-TO-DATE >> >> :buildSrc:compileTestJava UP-TO-DATE >> >> :buildSrc:compileTestGroovy UP-TO-DATE >> >> :buildSrc:processTestResources UP-TO-DATE >> >> :buildSrc:testClasses UP-TO-DATE >> >> :buildSrc:test UP-TO-DATE >> >> :buildSrc:check UP-TO-DATE >> >> :buildSrc:build UP-TO-DATE >> >> >> FAILURE: Build failed with an exception. >> >> >> * Where: >> >> Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 >> >> >> * What went wrong: >> >> A problem occurred evaluating script. >> >> Cannot invoke method split() on null object >>> >> >> * Try: >> >> Run with --stacktrace option to get the stack trace. Run with --info or >> --debug option to get more log output. >> >> >> BUILD FAILED >> >> >> Total time: 8.96 secs >> >> >> If anyone has any tips or suggestions to get this compiling on Centos 6.x >> they would be most appreciated. >> > >