繁体   English   中英

Linux上没有默认浏览器的解决方法?

[英]Workaround for no default browser on Linux?

我正在尝试使用Desktop .browse()调用URL,这在Windows机器或配置了默认浏览器的Linux机器上都能正常工作。 但是,当在Linux上找不到默认浏览器时,它将引发IOException异常。 解决此问题的方法有哪些? 我想我可以尝试启动Firefox并在那里假设它,但是我不想做这个假设。

您可以允许用户输入要启动其浏览器的命令,然后保存该命令,以便每次使用该命令。

我认为您无能为力:

  1. 检入常用浏览器(firefox,mozilla等)的常用位置
  2. 迭代PATH环境变量以查找常见的浏览器可执行文件。
  3. 在配置中询问用户。

此外, SWT FAQ中有一整节专门用于发现要在特定系统上使用的Firefox版本(请继续阅读上面链接中的问题)。

尝试xdg-open或尝试使用konqueror(KDE上的默认设置,但Desktop API不支持)和firefox。

也尝试kmclient exec url。

if (Desktop.isDesktopSupported()) {
   desktop = Desktop.getDesktop();
   // blah blah
} else {
   // try to launch xdg-open
   // or try launching other browsers?
} 

您可以按某种顺序尝试各种浏览器-Firefox,Opera等,等等; 还保留一个可编辑的配置文件,该文件可让用户设置浏览器,记住您找到的浏览器等。

看起来Desktop.browse()最终在* ix上调用了XDesktopPeer.browse()。 该方法通过调用gnome_url_show 实现的。 在某些情况下,这可能会很好地工作,但是xdg-open是跨平台的解决方案,正如其他人指出的那样。

可以说,这是Sun Java中的错误。 错误6490730 ,“桌面抛出IOException而不是显示URL或发送邮件”,(2006年11月报告)似乎相关

如果要实现“通过一系列浏览器循环”之一,请首先尝试执行xdg-open http://the/url 如果由于某种原因Java无法找到默认浏览器,则应打开该默认浏览器 (反正这似乎是Java所做的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM