【发布时间】:2012-01-25 11:51:21
【问题描述】:
好吧,我猜标题已经说明了这一点。 当尝试使用桌面的 browse() 函数启动默认浏览器时,浏览器确实打开但指向错误的 URI beeing %u
我无法将其缩小到代码,因为我没有更改它。 我所做的更改是操作系统现在使用 Ubuntu 11.10 而不是 11.04
我安装了 Java 7,但继续使用 Java 6。
哪里出错了?有什么线索吗?
【问题讨论】:
-
“有任何线索吗?” 您是否打算通过发布SSCCE 来提供任何线索?或者我们应该只是猜测?
-
在真正的“它适用于我的盒子”风格中,SCCE 在我的机器上运行良好 - Ubuntu 11.10。听起来正在调用以启动浏览器的命令不会替换
%u参数。我认为这是用户桌面上的环境问题 -
正如我所说,这不是代码问题,我没想过举个例子。我想我必须更深入地研究操作系统。 @Petesh 你知道在哪里设置这样的参数吗?或者问题可能来自哪里?
-
不是你设置参数的情况。当您要求打开它调用
gnome-open <uri>的URI 时,您应该strace -v -f -o stracefile <pidofjava>然后点击链接。这将为您提供execve行,这些行指示正在调用哪些命令作为browse() 操作的一部分——其中一个可能包含%u,在这种情况下,问题在于调用它。很可能为browse命令调用的命令不理解%u语法(可能是旧脚本-pre gnome3/unity??) -
在 strace 中,我看到 firefox 正在呼叫,您是对的。 Firefox 以 %u 作为参数调用,而不是实际的 URI。没有看到对 gnome-open 的调用,但我猜 Ubuntu 为 Unity 开发了自己的文件处理程序。得看看那里有什么...