【发布时间】:2011-09-20 21:31:12
【问题描述】:
你好 Stack Overflow 的人们, 我确实有一个业务问题,并希望获得一些关于如何解决它的答案/指针/想法。也许这已经在其他主题中提到过,但到目前为止我搜索了互联网但无法找到直接的答案..
业务问题:我们的一位客户想要一个基于 Java Web 的应用程序,但作为桌面应用程序启动。即,客户端希望双击桌面上某个位置的图标并启动一个浏览器窗口,该窗口指向将在 Jetty 服务器上本地运行的 Web 应用程序的 URL/上下文当用户点击图标时启动。
到目前为止,我已经弄清楚了如何打包我的应用程序并创建一个 exe 启动器(使用 install4j)(基本上我创建了一个带有码头服务器的可执行 jar 文件,我的 web 应用程序与一个启动类一起打包,它将启动码头服务器和将其指向 Web 应用程序的上下文)。
我的问题是我不知道如何启动(本机)网络浏览器并将其指向网络应用的 URL/上下文。
我找到了启动用户默认浏览器的代码:
String url = "http://www.google.com";
java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
这很好,但还不够好。它不够好的原因是当用户关闭浏览器时,Jetty 服务器仍将在后台运行。我想要的是当用户关闭浏览器时我也想检测到这个事件并关闭 Jetty 服务器(请不要使用任何活动的 X 或 JavaScript)
有人提到创建一个 JPanel 并使用一些 DJ 原生 Swing API 在其中包含一个原生浏览器,但我不知道如何做到这一点。
有什么想法吗?
在此先感谢
【问题讨论】:
标签: java swing browser desktop launch