RPi JavaFX execution ~ラズパイでJavaFX起動~

ラズパイでJavaFXを起動する

JDKのインストール

注意点としては、ARM32のJDKをインストールするというところです。

参考にするサイトはオラクルのブログです。

ラズパイにRaspbianのFULLバージョンをインストールした場合の記述になっています。

そして、使用するJDKはLibraSoftが提供しているものです。
以下のコマンドを叩きます。

$ cd /home/pi 
$ wget https://download.bell-sw.com/java/13/bellsoft-jdk13-linux-arm32-vfp-hflt.deb 
$ sudo apt-get install ./bellsoft-jdk13-linux-arm32-vfp-hflt.deb 
$ sudo update-alternatives --config javac 
$ sudo update-alternatives --config java

ここでのポイントは「update-alternatives」コマンドです。
このコマンドは、使用するJDKを選択するものだと思ってくれればOKです。下のようなイメージです。

使用しているJDKが違うので注意してください。

余談ですが、GPIOの番号と機能に関しては、こちらです。

そして、確認を行います。

java --version

Mavenのインストール

ズバリ下のようにコマンドを叩くだけです。

cd /tmp
wget http://ftp.kddilabs.jp/infosystems/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar xzvf apache-maven-3.6.3-bin.tar.gz
sudo mv apache-maven-3.6.3 /opt
echo "export PATH=/opt/apache-maven-3.6.3/bin:$PATH" >> ~/.profile
source ~/.profile

そして、実行するのですが、下のようなエラーが出ました。

Caused by: java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
    at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
    at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
    at application.Main.initWindowInfo(Main.java:154)
    at application.Main.<init>(Main.java:88)

どうやら、リモートデスクトップでの実行ではほかの設定が必要なようです。今後、接実行してみようと思います。

でわでわ。。。

<以前の記述です>

Oracle JDKをダウンロードしてやる場合

ラズパイでのJavaFXを起動時に実行する手順のメモです。

Introduction

This blog is a Memo for Execute to JavaFX on RPi2 when start up.

設定するもの一覧(List of setting files)

  1. JDK + jfxswt.jar amd etc...
  2. raspi-config(ラズパイの設定)
  3. ./config/lxsession/LXDE-pi/autostart

1.JDKの用意(setting up JDK)

以下のようにOpemJDKに必要なファイルをコピーして配置します。既にファイルを配置しているのであれば飛ばしてよいです。

Setting up as below. if you have jfxrt.jar et... on your JDK then you do not setting up as bellow.

開発環境の構築(setting up Development enviroment)

・サイトより「JavaFX Embedded SDK」をダウンロード(Download left link)

・DLして解凍したら、各資源をいかに配置(Deploy as bellow)

armv6hf-sdk/rt/lib/ext/jfxrt.jar

jre/lib/ext/

armv6hf-sdk/rt/lib/arm/*

jre/lib/arm/

armv6hf-sdk/rt/lib/javafx.platform.properties

jre/lib/

armv6hf-sdk/rt/lib/javafx.properties

jre/lib/

armv6hf-sdk/rt/lib/jfxswt.jar

jre/lib/

※結局は「解凍したフォルダ/rt/lib」をJDK/libにコピペすれば、おっけ。

2.raspi-config

ラズパイの起動設定を行います。

  1. ラズパイにログイン、ターミナル(コマンド画面)を起動します。
  2. 右のコマンドをたたく「sudo raspi-config」
  3. 「Boot Option」→「Desktop \ CLI」→「Desktop Autologin」を選択

3.「./config/lxsession/LXDE-pi/autostart」

このファイルが存在しない場合は、作成してください。そしてこのファイルの中身に以下の記載を追加します。

If you can not find "aoutostart" file then you create one. And write this file as below.

@"実行したいコマンド(アプリ)

※自分の場合はJavaFXを起動したいので、以下のようなシェルスクリプトを作成し実行しましたので以下のようにシェルを書きました。

In my case, I had created shell script on "~/"(My user root dir). And execute JavaFX from this script/

./config/lxsession/LXDE-pi/autostart

@sh ~/javaExe.sh

~/javaExe.sh

"JDK_PATH"/bin/java -jar "JavaFx.jar"