首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用java打开浏览器

用java打开浏览器
EN

Stack Overflow用户
提问于 2018-08-03 03:26:30
回答 1查看 3K关注 0票数 1

我有一个有两个按钮的java程序,一个用于chrome,一个用于firefox。我按下其中的一个,浏览器就会在屏幕上的某个特定位置启动,而且尺寸很小。

我尝试过运行终端命令,如下所示

代码语言:javascript
复制
"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,类似于:

代码语言:javascript
复制
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("JavaScript");             
    engine.eval("window.open('https://stackoverflow.com')");
    engine.eval("window.resizeTo(800,600)");

但是我得到了编译错误:

代码语言:javascript
复制
ReferenceError: "window" is not defined in <eval> at line number 1

我不知道发生了什么。想法?

EN

回答 1

Stack Overflow用户

发布于 2018-08-03 06:13:25

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

代码语言:javascript
复制
Runtime rt = Runtime.getRuntime();
rt.exec("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe stackoverflow.com");

我相信你也可以为Google Chrome做类似的事情。我看了一下我过去为Chrome实现的一个代码,它有点不同,但之前的方法应该也适用:

代码语言:javascript
复制
Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd", "/c","start chrome http://www.stackoverflow.com"});

如果你想在基于Linux的操作系统上这样做,那么你也可以使用Runtime:

代码语言:javascript
复制
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/

希望能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51660856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档