英文:
How to solve "java.lang.Exception: No web browser found" on Raspberry-Pi
问题
在Raspberry Pi OS上,我尝试安装多个带有JavaFX的Java版本,以便运行[rbox.jar| https://www.radiosparx.com/sslbypass/str/app/rbox.jar]。我发现的最佳Java版本是来自https://bell-sw.com/的版本,但即使使用它,我也无法使其工作。
在大多数情况下,我会遇到以下错误:
pi@raspberrypi:~/rbox $ java -jar rbox.jar
java.lang.Exception: 未找到 Web 浏览器
at javafx.graphics/com.sun.javafx.application.HostServicesDelegate$StandaloneHostService.showDocument(HostServicesDelegate.java:146)
at javafx.graphics/javafx.application.HostServices.showDocument(HostServices.java:115)
at anywheresoftware.b4j.objects.JFX.ShowExternalDocument(JFX.java:138)
at com.radiosparx.rbox.main$ResumableSub_AppStart.resume(main.java:150)
at com.radiosparx.rbox.main._appstart(main.java:83)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:78)
at com.radiosparx.rbox.main.start(main.java:37)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
at java.base/java.lang.Thread.run(Thread.java:834
我已安装了Chromium和Dillo。
pi@raspberrypi:~ $ sudo update-alternatives --config x-www-browser
在提供 /usr/bin/x-www-browser 的替代方案中,共有 2 个选择。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/chromium-browser 90 自动模式
1 /usr/bin/chromium-browser 90 手动模式
2 /usr/bin/dillo 50 手动模式
非常感谢任何帮助。
英文:
On Raspberry Pi OS, I've tried to install multiple versions of Java with JavaFX in order to run [rbox.jar| https://www.radiosparx.com/sslbypass/str/app/rbox.jar]. Best Java version I've found was the one from https://bell-sw.com/, but even with it I was not able to make it work.
On most of them I get the following error:
pi@raspberrypi:~/rbox $ java -jar rbox.jar
java.lang.Exception: No web browser found
at javafx.graphics/com.sun.javafx.application.HostServicesDelegate$StandaloneHostService.showDocument(HostServicesDelegate.java:146)
at javafx.graphics/javafx.application.HostServices.showDocument(HostServices.java:115)
at anywheresoftware.b4j.objects.JFX.ShowExternalDocument(JFX.java:138)
at com.radiosparx.rbox.main$ResumableSub_AppStart.resume(main.java:150)
at com.radiosparx.rbox.main._appstart(main.java:83)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:78)
at com.radiosparx.rbox.main.start(main.java:37)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
at java.base/java.lang.Thread.run(Thread.java:834
I have Chromium and Dillo
pi@raspberrypi:~ $ sudo update-alternatives --config x-www-browser
There are 2 choices for the alternative x-www-browser (providing /usr/bin/x-www-browser).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/chromium-browser 90 auto mode
1 /usr/bin/chromium-browser 90 manual mode
2 /usr/bin/dillo 50 manual mode
Any help would be much appreciated.
答案1
得分: 2
错误信息非常清楚,不是吗?该软件正试图通过HostServices.showDocument
方法显示文档(可能是一些HTML帮助文本或类似内容),但在Raspi上未能找到浏览器。因此问题是,您的Raspi上是否安装了浏览器?如果没有,请安装一个。否则,请查看HostServicesDelegate$StandaloneHostService.showDocument
中的代码,看看是否可以通过其查找方法找到它。
相关代码可以在这里找到:https://github.com/openjdk/jfx/blob/master/modules/javafx.graphics/src/main/java/com/sun/javafx/application/HostServicesDelegate.java
英文:
The error message is pretty clear, isn't it? The software is trying to show a document (probably some HTML help text or something like this) via the HostServices.showDocument
method and fails to find a browser on the Raspi. So the question is, do you have a browser installed on your Raspis? If not, do it. Otherwise look at the code in HostServicesDelegate$StandaloneHostService.showDocument
and see whether it can be located via its lookup method.
The relevant code can be found here: https://github.com/openjdk/jfx/blob/master/modules/javafx.graphics/src/main/java/com/sun/javafx/application/HostServicesDelegate.java
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论