你好堆栈溢出人, 我确实有一个业务问题,并希望得到一些关于如何解决它的答案/指针/想法。也许这已在其他一些话题中提到,但到目前为止我搜索了互联网但无法找到直接答案。启动并关闭指向网络应用程序的本地浏览器
业务问题:我们的客户之一想要有一个基于Java的Web应用程序,但启动为桌面应用程序。即客户希望双击图标上的某个图标,并启动浏览器窗口,指向将在本地运行本地的Web应用程序的URL /上下文,Jetty服务器将在启动时启动用户点击图标。
到目前为止,我已经找到了如何包装我的应用程序并创建一个exe启动器(使用install4j)(基本上我创建了码头服务器,并启动类,将启动码头封装在一起我的web应用程序的可执行的JAR文件服务器并将其指向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,但我不知道如何做到这一点。
任何想法?
非常感谢提前
谢谢尤达。我只是尝试了你上面建议的代码,它似乎在做伎俩。我只需修改以下行来打开IE: 'code' p = Runtime.getRuntime().exec(“C:\\ Program Files \\ Internet Explorer \\ iexplore.exe”); 'code' 但是必须对浏览器的位置进行硬编码似乎有点不实际,因为解决方案必须在Windows和Mac平台上工作! – Motokazi