我们有分布式 Web 应用程序,该应用程序的前端部分应该是独立的桌面应用程序,并与电话等桌面应用程序集成。我看到了 Electron 框架和基于它构建的应用程序(例如 Slack),它非常好。
Java世界有这样的工具可以嵌入jetty/tomcat和webkit浏览器来构建 native 桌面应用程序吗?
类似问题:
- Use embedded web browser (e.g. Chrome) as GUI toolkit for Java desktop applications?
- Is it possible to create Desktop Application using Java backend & Web Technologies UI
- Performance of WebView in JavaFX
- Integrating JavaFX 2.0 WebView into a Swing Java SE 6 Application
更新: 请参阅我在 Java CEF 上的测试应用程序:https://github.com/jreznot/cefc .
它使用 Jetty/Swing/JavaCEF/Vaadin 作为 HTML 5 桌面堆栈。
最终更新:
看看我的 Electron+Java 疯狂:https://github.com/jreznot/electron-java-app
它使用 Electron 和 Java 服务器端以及 Vaadin 作为应用程序 UI。
我建议使用 Electron 而不是 Java-Webkit 绑定(bind),因为它是成熟的框架,并且拥有庞大的 JS 开发人员社区。p>
最佳答案
这几天我一直在寻找类似的解决方案,但还没有找到完全好的解决方案。
下面是我发现的更有趣的部分解决方案。
在java中嵌入浏览器(chromium)
我找到了两个网站,但不清楚哪个是更好的解决方案:
我不确定这些嵌入解决方案是否能正常工作。
如果有人找到了嵌入网络浏览器的更快解决方案,请告诉我。
如果您将浏览器嵌入到代码中,那么即使浏览器将来会自行更新,并且用户拥有您的窗口容器(除非标准浏览器窗口),您也不会遇到任何问题。
如果您使用外部浏览器,您确信它的行为是众所周知的,但将来可能会发生变化,如果发生这种情况,您必须更新您的应用程序。
我选择避免嵌入浏览器并重用标准外部浏览器。
嵌入http服务器
我喜欢我找到的两个解决方案。所有这些解决方案都可以在您的 Web 应用程序上使用最少的代码更改。
最好做的一件事就是使您的 Web 应用程序成为 Maven应用程序。
为了在过去做到这一点,我查看了 Web 应用程序类路径中的每个库,并将其放入 Maven pom.xml 依赖关系树中。
Spring-boot框架
Spring-boot 是 Spring framework 的一部分.
这是一个Spring projects : Spring-boot .
这个项目对启动您的网络应用程序有很大帮助。
由于您正在开发一个 Web 应用程序,因此您将添加一个 spring-boot-
maven pom.xml 中的 starter-web 依赖
标准嵌入服务器网络是 tomcat7/8但您可以更改为 Jetty8/9或Undertow 1.1
Spark框架
这个framework是 Spring-boot 的一个很好的替代品。更加简洁,使用Jetty作为嵌入式 Web 服务器。
我喜欢Spring-boot,因为我习惯了Spring配置并使用xml/注解配置的混合,而且我喜欢spring IoC 。使用 Spring-boot 可以轻松添加其他 Spring 星座功能。
希望这对您有帮助。
关于java - 如何像Electron框架一样嵌入jetty和webkit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36725228/