On 1/1/15, 12:18 PM, Jens Kapitza wrote:

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|

This was added to to wiki this week as I worked to figure out what was 
happening.

https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+ARM+Hard+Float

Also added, on the Pi we need you to use 'sudo java ...' because of the 
permissions of udev and the devices that we need to read.

Dave

 https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+ARM+Hard+Float

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 
<mailto: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.






--
David Hill<david.h...@oracle.com>
Java Embedded Development

"A man's feet should be planted in his country, but his eyes should survey the 
world."
-- George Santayana (1863 - 1952)

Reply via email to