我的目标是让 Limewire(JAVA) 和 Songbird(XULRunner) 一起运行。

我认为最好的方法是在 JAVA swing 面板内运行 XUL 应用程序(songbird)。还有别的办法吗?

将 GUI 完全放在 XUL 中,然后以某种方式访问​​我的 JAVA 对象会更好吗?

我该怎么做呢?

谢谢

有帮助吗?

解决方案

看一眼 JRex, ,因为它可能会让您了解一些想法。

除此之外,我还想研究一下 犀牛皮 以及。

其他提示

看一眼 DJ 原生摇摆乐, ,使用 SWT 和 Xulrunner 的本机 Swing 实现。

我目前正在研究 XUL 的新产品,我发现 JavaXPCOM 它允许 Java 代码与 XPCOM 对象交互。我仍然对 Mozilla 堆栈很感兴趣,但据我了解,所有 XULRunner 应用程序都使用 XPCOM。因此,看起来您应该能够使用这种方法嵌入 Songbird。

Mozilla 的官方 XUL 实现严重依赖于 Gecko。Gecko 不是用 Java 编写的,也不是嵌入在 AWT/Swing/SWT 中(至少不使用 JNI)。

所以,简短的答案是:不。您必须使用 JNI 或使用繁重、复杂且不完整的第三方库。

然而,JavaXPCOM 似乎允许嵌入 Gecko: https://developer.mozilla.org/en/JavaXPCOM但在这种情况下,您将依赖 Gecko...我不知道这是否足以运行 Songbird。

我会检查 Limewire 的源代码。如果 UI 和应用程序的其余部分之间有明确的分离,我会尝试找到一个解决方案来实例化并从 Songbird 扩展中调用 Limewire 的非 UI 代码。

我会看看 eclipse swt 的嵌入 xulrunner:http://www.eclipse.org/swt/faq.php#whatisbrowser

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top