Building Openjfx on Centos 6.6

Jens Kapitza j.kapitza at schwarze-allianz.de
Thu Jan 1 17:18:06 UTC 2015


Am 30.12.2014 um 14:16 schrieb Nick Pratt:
> 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:
>
I've testet this some days ago;

you have to remove some more jars.

||
|rm| |-f $JAVA_HOME||/jre/lib/ext/jfx||*jar 
$JAVA_HOME||/jre/lib/arm/libjavafx_font_t2k||.so|

  https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+ARM+Hard+Float
>
> pi at 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 at 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 at 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 at 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 at 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.kapitza at schwarze-allianz.de <mailto:j.kapitza at 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 at 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.
>
>
>



More information about the openjfx-dev mailing list