有没有办法在Java中嵌入浏览器?[关闭]


72

有没有办法在Java中嵌入浏览器?更具体地说,是否有可以模拟浏览器的库?


JxBrowser库提供了基于最新Chromium引擎的Swing / JavaFX轻量级组件。网页由Chromium引擎在屏幕外呈现,并显示在轻量级的Swing / JavaFX组件中。它非常易于使用。它对于开源和学术项目是免费的。
弗拉基米尔

我认为这是商业性的。我的意思是您怎么能获得免费许可证@Vladimir?
gumuruh

teamdev.com/jxbrowser#evaluate的评估表中,选择“开源”或“学术”。您会看到简短的说明:这段时间后,评估版许可证将无法使用。如果您正在执行一个开源项目,则可以通过将收到的电子邮件中的链接来申请永久许可证。因此,一旦您请求评估,您将收到一封电子邮件,您可以写信来请求开源项目的免费许可证。
弗拉基米尔

Answers:


37

从JavaFX 2.0开始,您现在可以使用webview

在此处输入图片说明


1
此处的操作方法为:stackoverflow.com/a/8413289/4857
Ande Turner

另一个JavaFX库是带有BrowserView组件的JxBrowser
Vladimir

WebView存在一些性能问题,请参阅stackoverflow.com/questions/10762979/…–
Stefan

糟糕的事情永远都是可能的。性能最差,javascript很少起作用,不需要的行为。永远都不能在任何好的项目中使用
Zahan Safallwa

22

我相信JWebPane将成为将浏览器嵌入Java应用程序的官方方法。它基于开源引擎WebKit,可在Apple Safari和Google Chrome浏览器中使用。有关详细信息,请参阅此博客


1
至于2009年3月3日,这仍然是不可能的。
OscarRyz

2
截至2009年9月21日,这仍然是不可能的。
jrhicks

2
截至
2009年

22
在JavaFX 2.0中将JWebPane更新更改为WebView(库系列),请参见:download.oracle.com/javafx/2.0/webview/jfxpub-webview.htm ,有关其运行的示例屏幕截图,请参见:javamexico.org/blogs/oscarryz/webview_en_javafx(尽管不是用Java编写的,而是用实验性的JVM语言编写的)
OscarRyz

3
JavaFX中的WebView是真正的独立跨平台还是依赖于任何平台特定的本机组件?更重要的是,它如何堆叠成呈现页面?它由WebKit提供支持,但是在呈现网站时,这是否接近拥有真正的浏览器?
KJW

10

您可以尝试以下方法:https : //jdic.dev.java.net/

替代文字
(来源:java.net

或这样:http : //lobobrowser.org/java-browser.jsp

替代文字
(来源:lobobrowser.org


至少要有一些东西是非常好的。但是与Chrome或Firefox 4相比,它的运行速度非常慢且图形效果非常差

Lobo 2年没有更新
Paul Verest 2011年

@OzhanDuz有关JDIC问题的详细信息吗?我喜欢这种方法,但我自己还没有使用过。
Patrick Linskey 2012年

远离JDIC,它不是多平台的,我不确定,但是开发可能会停止或不活跃。使用DJ Native Swing,您将获得常规更新,更好的api和更稳定的功能。

8

您可以将SWT用于GUI。它的浏览器控件使您可以轻松嵌入IE,Mozilla或Safari(具体取决于您所运行的平台)。


browser.evaluate()的返回值仅限于视图类型。JavaFx WebEngine可以通过将返回值包装在JSObject中来处理各种返回类型。
Stefan's

4

JxBrowser尚未被提及。它嵌入了Mozilla Firefox(Gecko),Apple Safari(WebKit)或Internet Explorer。程序员指南


此外JExplorer是TeamDev一个廉价的解决方案,如果你并不需要一个跨平台的解决方案。
xmedeko 2013年

2
从4.0版开始,JxBrowser与Chromium引擎集成。
弗拉基米尔

多年来,我一直在寻找这个问题的真正答案,而JxBrowser版本4确实是改变游戏规则的人。正是您希望摆动浏览器组件会是这样。
卡尔

1
现在,JxBrowser允许将Google Chromium引擎嵌入Java Swing / JavaFX应用程序中。它支持两种渲染模式:轻量级(屏幕外)和重量级(GPU加速)。对于开源项目是免费的。
弗拉基米尔


2

我已经使用SWT从Java成功打开了浏览器。您可以找到有关如何使用SWT打开浏览器窗口的代码示例。这很容易做到。


browser.evaluate()的返回值仅限于视图类型。JavaFx WebEngine可以通过将返回值包装在JSObject中来处理所有类型的返回类型
Stefan,2007年

2

到目前为止,我所熟悉的最强大的嵌入式浏览器是SWT中的浏览器。实际上,它是如此灵活,以至于您可以在Eclipse中看到的JavaDoc悬停实际上是一个浏览器,而JavaDoc视图实际上支持诸如动画之类的东西!

使用SWT的唯一风险是针对不同平台存在不同版本的SWT库。我不确定是否有单个罐子可以盖住所有人。





1

如果您需要纯Java解决方案,则可以尝试JWebEngine。它使HTML 4很好。您可以在applet,Java Webstart和任何平台上使用它。使用非常简单。


但是,它不是开源解决方案。它可能无法满足所有需求。
文森特·坎廷

开源不是OP的要求。
Horcrux7 2011年

1

您可以尝试使用JEditorPane,它不会解释高级HTML,Javascript或高级CSS,但您可以自己编写该部分,称为EditorKit。这是JEditorPane咨询的类/对象,或者它如何显示其内容。

我知道它是可能的,因为我尝试过并失败了(:P),但是我不知道它现在可能已经过时或过时了。


JEdi​​torPane仅支持HTML 3.2
Frederic

0

如果您查看The Minecraft启动器(旧的),请通过LoginForm或LauncherFrame查看,您可能可以找到该方法。YouTube上有一个kippykip的教程,介绍如何反编译和编辑它:此处


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.