java - 在 unix 上执行 jar 会导致初始化量子渲染器出错:找不到合适的管道
问题描述
我正在尝试运行一个 selenium jar 项目,并实现无头 jbrowser。我在作为类路径提供的目录中有 javafx 库。当我尝试运行时,它会出错。我使用了以下命令。
/sbcimp/run/tp/sun/jdk/v1.8.0_144/bin/java -cp "/home/jamesmb/selenium/javafx-src/com" -jar /home/jamesmb/selenium/ratesTestUnixv3.jar
错误 :
/sbcimp/run/tp/sun/jdk/v1.8.0_144/bin/java -cp "/home/jamesmb/selenium/javafx-src/com" -jar /home/jamesmb/selenium/ratesTestUnixv3.jar
/home/jamesmb
[2018-08-28T11:15:03.689][Instance 1][Port 45076] Graphics Device initialization failed for : sw
[2018-08-28T11:15:03.692][Instance 1][Port 45076] Error initializing QuantumRenderer: no suitable pipeline found
[2018-08-28T11:15:03.692][Instance 1][Port 45076] java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
[2018-08-28T11:15:03.692][Instance 1][Port 45076] at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
[2018-08-28T11:15:03.692][Instance 1][Port 45076] at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:221)
[2018-08-28T11:15:03.692][Instance 1][Port 45076] at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:205)
[2018-08-28T11:15:03.692][Instance 1][Port 45076] at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)
[2018-08-28T11:15:03.692][Instance 1][Port 45076] at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
[2018-08-28T11:15:03.693][Instance 1][Port 45076] at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)
[2018-08-28T11:15:03.693][Instance 1][Port 45076] at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
[2018-08-28T11:15:03.693][Instance 1][Port 45076] at java.lang.Thread.run(Thread.java:748)
[2018-08-28T11:15:03.693][Instance 1][Port 45076] Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
[2018-08-28T11:15:03.693][Instance 1][Port 45076] at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
[2018-08-28T11:15:03.693][Instance 1][Port 45076] at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
[2018-08-28T11:15:03.693][Instance 1][Port 45076] ... 1 more
[2018-08-28T11:15:03.694][Instance 1][Port 45076] java.lang.RuntimeException: No toolkit found
[2018-08-28T11:15:03.694][Instance 1][Port 45076] at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:217)
[2018-08-28T11:15:03.695][Instance 1][Port 45076] at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)
[2018-08-28T11:15:03.695][Instance 1][Port 45076] at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
[2018-08-28T11:15:03.695][Instance 1][Port 45076] at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)
[2018-08-28T11:15:03.695][Instance 1][Port 45076] at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
[2018-08-28T11:15:03.695][Instance 1][Port 45076] at java.lang.Thread.run(Thread.java:748)
[2018-08-28T11:15:03.695][Instance 1][Port 45076]
解决方案
错误是因为 64 位可执行文件试图在 32 位 java 环境中运行,也缺少 gtk 库
推荐阅读
- node.js - 使用 Windows 10 使用 nodemon 的 Docker 热重载节点应用程序
- docker - Gitlab Registry Docker 推送失败并出现 EOF
- java - 在 JavaFX 中创建两个单独的阶段
- dialogflow-es - 使用 Dialogflow 在 Google Home 上超时
- ajax - 响应标头中不存在访问控制允许来源
- javascript - 过去日期的日期范围逻辑
- php - 清洁架构中的记录器
- python - 如何删除字符之间的空格而不删除数据框中的所有空格?
- odoo - Odoo 将字段添加到 res.partner
- c# - Visual Studio 2017 - 如何在 IDE 中配置命令终端?