在 Java 上嵌入 XULRunner 应用程序
题
我的目标是让 Limewire(JAVA) 和 Songbird(XULRunner) 一起运行。
我认为最好的方法是在 JAVA swing 面板内运行 XUL 应用程序(songbird)。还有别的办法吗?
将 GUI 完全放在 XUL 中,然后以某种方式访问我的 JAVA 对象会更好吗?
我该怎么做呢?
谢谢
其他提示
看一眼 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