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