如何像 Electron 框架一样嵌入 jetty 和 webkit?
How to embed jetty and webkit like Electron framework does?
我们有分布式网络应用程序,这个应用程序的前端部分应该是独立的桌面应用程序,并与桌面应用程序(如电话)集成。我看到了 Electron 框架和基于它构建的应用程序(例如 Slack),它非常好。
Java 世界是否有这样的工具可以将 jetty/tomcat 和 webkit 浏览器嵌入到构建的本机桌面应用程序中?
类似问题:
- 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
它使用带有 Java 服务器端的 Electron 和用于应用程序 UI 的 Vaadin。
我建议使用 Electron 而不是 Java-Webkit 绑定,因为它是成熟的框架并且拥有庞大的 JS 开发人员社区。
我想你可以使用 wt。这是一个采用基于 Qt 的 GUI 应用程序并将绘图机制从通常的桌面控件重写为网页上的 html 控件的系统。 IIRC 它非常透明,因为您只需要更改原始代码的一两行。 Qt 不是 java,所以我只是为了完整性指出它,但它仍然很酷。
但最简单的方法是使用网络技术(例如 HTML/JSP 控件)实现它,以便它可以轻松显示为网页,然后创建一个使用相同的桌面应用程序 html 页面仅包装为 'executable'.
要创建桌面应用程序,您可以在仅用于在 window 中显示浏览器的应用程序中的嵌入式浏览器中查看网页,或者您可以使用类似 Microsoft 的 HTA 系统的东西来呈现桌面样式的网页 windows.
归功于@gbjbaanb
资源Link:
- 是否可以为桌面 GUI 和
网络应用程序?
- Run Jetty Web Server Within Your Application
- Running a web application (WAR) with embedded jetty server
最近几天我一直在寻找类似的解决方案,但没有找到完全好的解决方案。
下面这些是我找到的比较有趣的局部解决方案。
在 java
中嵌入浏览器 (chromium)
我找到了两个网站,但不清楚哪个是更好的解决方案:
我不确定这些嵌入解决方案是否有效。
如果有人找到更快的嵌入网络浏览器的解决方案,请告诉我。
如果您将浏览器嵌入到您的代码中,那么如果浏览器将来会自行更新并且用户拥有您的 window 容器,除非标准浏览器 window.
如果您使用外部浏览器,您确定它具有众所周知的行为,但将来可能会发生变化,如果发生这种情况,您必须更新您的应用程序。
我选择避免使用嵌入式浏览器并重新使用标准的外部浏览器。
嵌入 HTTP 服务器
我喜欢我找到的两个解决方案。所有这些解决方案都可以在您的 Web 应用程序上以最少的代码更改使用。
你最好做的一件事是让你的 web 应用程序成为 Maven 应用程序。
过去为了做到这一点,我查看了 Web 应用程序 class 路径中的每个库,并放入了 Maven pom.xml 依赖树。
Spring-引导框架
Spring-boot 是 Spring framework.
的一部分
这是一个 Spring projects: Spring-boot.
该项目对启动您的 Web 应用程序有很大帮助。
由于您正在开发 Web 应用程序,因此您将添加一个 spring-boot-
Maven 中的 starter-web 依赖项 pom.xml
它的标准嵌入服务器网站是 tomcat7/8 but you can change to Jetty8/9 or Undertow 1.1
Spark 框架
此 framework is a good alternative to Spring-boot. It is more concise and use Jetty 作为嵌入式 Web 服务器。
我喜欢 Spring-boot,因为我习惯 Spring 配置并混合使用 xml/annotation 配置,我喜欢 spring IoC。使用 Spring-boot 可以轻松添加其他 Spring 星座功能。
希望对您有所帮助
我们有分布式网络应用程序,这个应用程序的前端部分应该是独立的桌面应用程序,并与桌面应用程序(如电话)集成。我看到了 Electron 框架和基于它构建的应用程序(例如 Slack),它非常好。
Java 世界是否有这样的工具可以将 jetty/tomcat 和 webkit 浏览器嵌入到构建的本机桌面应用程序中?
类似问题:
- 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
它使用带有 Java 服务器端的 Electron 和用于应用程序 UI 的 Vaadin。
我建议使用 Electron 而不是 Java-Webkit 绑定,因为它是成熟的框架并且拥有庞大的 JS 开发人员社区。
我想你可以使用 wt。这是一个采用基于 Qt 的 GUI 应用程序并将绘图机制从通常的桌面控件重写为网页上的 html 控件的系统。 IIRC 它非常透明,因为您只需要更改原始代码的一两行。 Qt 不是 java,所以我只是为了完整性指出它,但它仍然很酷。
但最简单的方法是使用网络技术(例如 HTML/JSP 控件)实现它,以便它可以轻松显示为网页,然后创建一个使用相同的桌面应用程序 html 页面仅包装为 'executable'.
要创建桌面应用程序,您可以在仅用于在 window 中显示浏览器的应用程序中的嵌入式浏览器中查看网页,或者您可以使用类似 Microsoft 的 HTA 系统的东西来呈现桌面样式的网页 windows.
归功于@gbjbaanb
资源Link:
- 是否可以为桌面 GUI 和 网络应用程序?
- Run Jetty Web Server Within Your Application
- Running a web application (WAR) with embedded jetty server
最近几天我一直在寻找类似的解决方案,但没有找到完全好的解决方案。
下面这些是我找到的比较有趣的局部解决方案。
在 java
中嵌入浏览器 (chromium)我找到了两个网站,但不清楚哪个是更好的解决方案:
我不确定这些嵌入解决方案是否有效。
如果有人找到更快的嵌入网络浏览器的解决方案,请告诉我。
如果您将浏览器嵌入到您的代码中,那么如果浏览器将来会自行更新并且用户拥有您的 window 容器,除非标准浏览器 window.
如果您使用外部浏览器,您确定它具有众所周知的行为,但将来可能会发生变化,如果发生这种情况,您必须更新您的应用程序。
我选择避免使用嵌入式浏览器并重新使用标准的外部浏览器。
嵌入 HTTP 服务器
我喜欢我找到的两个解决方案。所有这些解决方案都可以在您的 Web 应用程序上以最少的代码更改使用。
你最好做的一件事是让你的 web 应用程序成为 Maven 应用程序。
过去为了做到这一点,我查看了 Web 应用程序 class 路径中的每个库,并放入了 Maven pom.xml 依赖树。
Spring-引导框架
Spring-boot 是 Spring framework.
的一部分
这是一个 Spring projects: Spring-boot.
该项目对启动您的 Web 应用程序有很大帮助。
由于您正在开发 Web 应用程序,因此您将添加一个 spring-boot-
Maven 中的 starter-web 依赖项 pom.xml
它的标准嵌入服务器网站是 tomcat7/8 but you can change to Jetty8/9 or Undertow 1.1
Spark 框架
此 framework is a good alternative to Spring-boot. It is more concise and use Jetty 作为嵌入式 Web 服务器。
我喜欢 Spring-boot,因为我习惯 Spring 配置并混合使用 xml/annotation 配置,我喜欢 spring IoC。使用 Spring-boot 可以轻松添加其他 Spring 星座功能。
希望对您有所帮助