Building Openjfx on Centos 6.6

Nick Pratt nbpratt at gmail.com
Thu Jan 1 02:45:11 UTC 2015


Thanks for the help.  So now I can invoke Java without the link errors, but
my JavaFX app isnt appearing on the attached TFT screen ( Note: I can get
'x' to appear on the the Pi TFT screen by setting the FRAMEBUFFER variable
prior to invoking startx so I know my TFT screen is setup and the right
Kernel mods are enabled and applied)

Notwithstanding the error messages below, am I invoking Java correctly here
: (based on the comments in https://javafx-jira.kenai.com/browse/RT-36960 )

pi at raspberrypi ~ $ java -Djavafx.platform=monocle
-Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 -jar
JavaFXApp.jar

Udev: Failed to write to /sys/class/input/mice/uevent

      Check that you have permission to access input devices

Udev: Failed to write to /sys/class/input/event0/uevent

      Check that you have permission to access input devices

Udev: Failed to write to /sys/class/input/input0/uevent

      Check that you have permission to access input devices

Udev: Failed to write to /sys/class/input/mouse0/uevent

      Check that you have permission to access input devices


If I run the above command as sudo root, then I dont see the errors
printed, but still nothing on the TFT screen.

Regards


Nick



On Wed, Dec 31, 2014 at 4:19 PM, David Hill <David.Hill at oracle.com> wrote:

>
> Nick found a good one, took me a while to find the obvious :-p
>
> The UnsatisfiedLinkError was caused by old ARM JFX jars that were not
> overriden when he copied the new bits into the JDK.
>
> On ARM we have a split set of jars for FX that we ship, but when we build,
> we only build the single jfxrt.jar like the desktop. The split is post
> build packaging. So Nick was mixing old and new jars, which is what the
> Wiki told him to do. Doh.
>
> I updated the wiki for OpenJFX building and cross building with some
> clarifications, notes and such, so hopefully the next solider will not find
> so many mines.
>
> Dave
>
> On 12/29/14, 9:46 PM, Nick Pratt wrote:
>
>> So I made some progress here:
>>
>> I had installed Ubuntu 14.x 64-bit version.  Once I installed the
>> ia32-libs
>> (replacement versions for Ubuntu 14 since ia32-libs) isnt available
>> anymore, I got the ARM HF to build.  I installed on my Pi, but Im getting
>> link errors when I try and run a JFX program:
>>
>> java  -Djavafx.platform=monocle -Dmonocle.screen.fb=/dev/fb1 -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
>>
>>
>>
>> So then I figured I try and get an Ubuntu 12.x 32-bit VM up and running
>> and
>> use that for a OpenJFX build since this is mentioned in the OpenJFX wiki.
>> However, a clean install cant run sudo apt-get update due to missing
>> package definitions - have Ubuntu (or whoever maintains this set of repos)
>> removed the older 12.x packages (or started to)? I cant get gcc installed
>> or updated because of this - and this is a fresh install direct from the
>> Ubuntu 12.0.4 .iso
>>
>> On a related note, its not clear to me what Im supposed to do after
>> compiling OpenJFX - what needs to be installed and where does it need to
>> go
>> - JAVA_HOME/jre/lib ? (just replace everything in there?)
>>
>>
>>
>> On Sun, Dec 28, 2014 at 9:11 PM, Morris Meyer<morris.meyer at oracle.com>
>> wrote:
>>
>>  What JDK are you using?  That looks like an older version of the String
>>> class.  Gradle 1.8 is recommended.
>>>
>>>      --mm
>>>
>>>
>>>  On Dec 28, 2014, at 7:35 PM, Nick Pratt<nbpratt at gmail.com>  wrote:
>>>>
>>>> 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.
>>>>
>>>
>
> --
> David Hill<David.Hill at 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)
>
>


More information about the openjfx-dev mailing list