在Java上嵌入XULRunner应用程序

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

我认为最好的方法是在JAVAswing面板内运行XUL应用程序(鸣鸟)。 还有另一种方式吗?

是否更好或可能将GUI完全放在XUL中,然后以某种方式访问​​我的JAVA对象?

我该怎么做呢?

谢谢

看看JRex ,因为它可能会让你看到几个想法。

除此之外,我还研究了Rhinohide 。

看看DJ Native Swing ,一个使用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