java - 如何像Electron框架一样嵌入jetty和webkit?

标签 java webkit jetty electron desktop

我们有分布式 Web 应用程序,该应用程序的前端部分应该是独立的桌面应用程序,并与电话等桌面应用程序集成。我看到了 Electron 框架和基于它构建的应用程序(例如 Slack),它非常好。

Java世界有这样的工具可以嵌入jetty/tomcat和webkit浏览器来构建 native 桌面应用程序吗?

类似问题:

更新: 请参阅我在 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 开发人员社区。

最佳答案

这几天我一直在寻找类似的解决方案,但还没有找到完全好的解决方案。

下面是我发现的更有趣的部分解决方案。

在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/9Undertow 1.1

Spark框架

这个frameworkSpring-boot 的一个很好的替代品。更加简洁,使用Jetty作为嵌入式 Web 服务器。

我喜欢Spring-boot,因为我习惯了Spring配置并使用xml/注解配置的混合,而且我喜欢spring IoC 。使用 Spring-boot 可以轻松添加其他 Spring 星座功能。

希望这对您有帮助。

关于java - 如何像Electron框架一样嵌入jetty和webkit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36725228/

相关文章:

java - Spring WebExceptionHandler 顺序

java - 在另一个方法中使用一个方法的变量

javascript - 仅针对 html 禁用 flex 滚动,但针对溢出 :scroll 的元素进行维护

java - 如何从 Jar 中获取嵌入式 Jetty 服务 html 文件,而不是 war

java - 当我使用特定于 Java 8 的代码时,Jetty 无法加载 ArrayIndexOutOfBoundsException

java - Maven 故障安全插件。复制资源

java - Spring Security ACL - @PreAuthorize 泛型和接口(interface)

css - YouTube iFrame 在 Chrome 中嵌入 CSS 悬停子菜单之上

javascript - 强制 safari 重新绘制 DOM

java - 分阶段加载 spring 上下文