如何从Java启动web浏览器

如何从Java启动web浏览器,java,javafx,Java,Javafx,我想用定义好的网页从Java启动默认的web浏览器。我测试了几个示例,但它们不起作用。我正在使用JavaFX,这可能会导致此问题。有什么通用的方法可以用Java启动web浏览器吗?仅限Windows,但我用适当的try/catch尝试了这个方法,它似乎对我有效。我的默认浏览器是chrome,它刚刚打开chrome并转到那个页面 Runtime.getRuntime().exec("start www.google.com") 您正在寻找跨平台解决方案吗?我找到了一种跨平台解决方案。通过我们的j

我想用定义好的网页从Java启动默认的web浏览器。我测试了几个示例,但它们不起作用。我正在使用JavaFX,这可能会导致此问题。有什么通用的方法可以用Java启动web浏览器吗?

仅限Windows,但我用适当的try/catch尝试了这个方法,它似乎对我有效。我的默认浏览器是chrome,它刚刚打开chrome并转到那个页面

Runtime.getRuntime().exec("start www.google.com")

您正在寻找跨平台解决方案吗?

我找到了一种跨平台解决方案。通过我们的java应用程序,我们可以识别操作系统并在Windows中创建一个可执行文件-.bat,在Linux中创建一个可执行文件-.bin,并使用java.io.file.setExecutabletrue,true赋予它相应的可执行权限

要识别操作系统,我们可以使用以下命令:-

String operatingSystem = java.lang.System.getProperties().getProperty("os.name");
创建文件后,我们将内容添加到文件中以启动浏览器,例如启动www.google.com for Windows或其他用于Linux或Mac的命令。创建文件后,我们可以调用以下代码:-

Runtime rm = Runtime.getRuntime();

rm.exec("launch_browser.bat");

launch_browser.bat或launch_browser.bin将调用代码启动http web请求,并将启动操作系统默认浏览器查看项目。它是从Eric Albert最初编写和发布的类派生出来的,并在一定程度上进行了更新。我在一个多平台Java应用程序中成功地使用了最初的BrowserLauncher类,该应用程序在21世纪初通过web浏览器界面在本地运行

请注意,BrowserLauncher2是根据许可证获得许可的。如果该许可证不可接受,请查找原始BrowserLauncher的副本,该版本具有非常宽松的许可证:

此代码由Eric Albert于1999-2001年版权所有ejalbert@cs.stanford.edu并且可以不受限制地以任何形式重新分发或修改,只要本段至评论结尾的部分未删除。作者要求任何应用程序、小程序或其他二进制文件使用此代码时通知他,但这更是出于好奇,不是必需的。此软件不包括保修。对于使用本软件造成的任何数据或功能损失或任何不利或意外影响,作者概不负责

学分: Steven Spencer,《Java世界》杂志Java Tip 66 还要感谢罗恩·B·叶、埃里克·夏皮罗、本·恩伯、保罗·泰特勒鲍姆、安德里亚·坎塔托尔、拉里·巴罗夫斯基、特雷弗·贝泽克、弗兰克·米德里奇和罗恩·拉巴库克


BrowserLauncher 2以外的项目可能也更新了原始BrowserLauncher,以说明自2001年以来浏览器和默认系统安全设置的变化。

@hsz此代码需要URI,因此它不会打开默认网页。如果使用的Java实现相当简朴,只包含Runtime.exec,按照这个答案的建议,提供一个Windows批处理文件和Unix/Linux/Mac OS X shell脚本是一个不错的选择。通常,成功启动系统默认web浏览器的方法不仅比传递给Runtime.exec的单个字符串中指定的方法更多,而且提供脚本文件包装器还可以在某些情况下对启动脚本进行本地自定义。
 rm.exec("launch_browser.bin");