我的目标
我想在Linux Arm设备上运行javafx,但失败了!
NanoPC T3,有一些信息:
fa@NanoPi3:~$ uname -a
Linux NanoPi3 3.4.39-s5p6818 #3 SMP PREEMPT Mon Jun 19 18:28:53 HKT 2017 armv7l GNU/Linux
fa@NanoPi3:~$ cat /etc/issue
Debian GNU/Linux 8 \n \l
fa@NanoPi3:~$ getconf LONG_BIT
32
Display: 7 in Capacitive screen (X710)
我做过:
编写示例应用和包,在我的NanoPC T3上运行:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
StackPane root = new StackPane();
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
root.getChildren().add(btn);
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("Hello ARM");
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
我的问题
当我通过cammond运行应用程序时:java -jar HelloArm.jar,系统UI无法响应。 但是,我正常使用ssh登录设备,也可以看到线程java程序:
ps -aux | grep java.
当我杀了它时,System UI再次正确。我测试为java添加一些标志(tips from here):
-Dmonocle.platform=Monocle -Djavafx.debug=true -Dprism.order=sw
有些想法
答案 0 :(得分:3)
最后,我们发现我们需要添加-Djavafx.platform = eglfb
,让JavaFX
使用eglfb
来管理用户界面。
感谢。