使用Java打开浏览器

时间:2018-08-02 19:26:30

标签: javascript java

我有一个Java程序,带有两个按钮,一个用于chrome,一个用于Firefox。我按其中之一,浏览器就会在屏幕上某个特定的位置启动,并且尺寸较小。

我尝试运行终端命令,诸如此类

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --profile-directory="Default" --app="data:text/html,<html><body><script>window.moveTo(198,60);window.resizeTo(1167,708);window.location='https://stackoverflow.com';</script></body></html>"

它有效,但仅适用于chrome。我至少要在Windows和Linux上都使用chrome和Firefox。

稍作搜索,我遇到了其他解决方案。在Java上运行javascript,例如:

    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("JavaScript");             
    engine.eval("window.open('https://stackoverflow.com')");
    engine.eval("window.resizeTo(800,600)");

但是我收到编译错误:

ReferenceError: "window" is not defined in <eval> at line number 1

我不知道怎么回事。想法?

2 个答案:

答案 0 :(得分:0)

$("#add").on('click', function (e) { e.preventDefault() $("#container").append(html); tinymce.remove() tinymce.init({ selector:".yourSelectorName" }); }); 在服务器端运行脚本。 ScriptEngineManager是一个客户端对象,您无法从服务器访问它。

换句话说,因为您没有在浏览器中执行脚本,所以未定义窗口对象。

您可以尝试通过这种方式在操作系统的默认浏览器上打开网站:

window

要在Java中打开非默认浏览器,应使用 Desktop desktop=Desktop.getDesktop(); URI url = new URI("http://somewhere"); desktop.browse(url);

对于 Windows 操作系统,请尝试以下操作:

Runtime.exec()

有关在其他操作系统read here上如何使用 String browserPath = "C:/Program Files/Mozilla Firefox/firefox.exe"; String url = "http://somewhere"; try { String[] b = {browserPath, url}; Runtime.getRuntime().exec(b); } catch (Exception exc) { exc.printStackTrace(); } 的更多信息

答案 1 :(得分:0)

对于Windows,您可以使用Runtime执行以下操作:

Runtime rt = Runtime.getRuntime();
rt.exec("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe stackoverflow.com");

我相信您可以为Google Chrome做类似的事情。我看了一下我过去为Chrome实施的代码,虽然有些不同,但是以前的方法也应该适用:

Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd", "/c","start chrome http://www.stackoverflow.com"});

如果您想在基于Linux的操作系统上使用它,那么您也可以使用运行系统:

Runtime rt = Runtime.getRuntime();
rt("/usr/bin/firefox -new-window http://www.stackoverflow.com");

我记得我从此页面获得了一些参考:

https://www.mkyong.com/java/open-browser-in-java-windows-or-linux/

希望它可以为您提供帮助。