2012-08-12 76 views
0

使用Java获取信息,我可以打开Firefox的只是我使用此代码设置URL罚款:Java运行时的exec:从Firefox

Runtime.getRuntime().exec("C:\\Program Files\\Mozilla Firefox\\firefox.exe" + " " + "http://www.website.com"); 

但是,如果可能的话我怎么能那么返回下列数据?

  1. 如果Firefox加载成功? (作为bool)
  2. 如果URL加载成功? (作为bool,或者如果使用超过1个URL作为布尔阵列)
  3. 加载所花费的时间(作为值/字符串,或者如果使用多个URL作为值/字符串数组。
  4. Firefox Web Console的内容(作为一个字符串,或者如果使用多个URL作为字符串数组)

有没有办法做到这一点,并从Firefox或其他程序取回这种类型的数据。执行正在启动?

+1

不要这样做。你不能假设你的用户拥有Firefox,或者他们甚至有一个'C:'驱动器。 – SLaks 2012-08-12 17:23:01

+0

我想要这个供我自己使用,所以Firefox会被找到。 – zeddex 2012-08-12 17:55:26

+0

@zeddex - 准则:如果您不需要硬编码的东西;) – paulsm4 2012-08-12 18:12:26

回答

3

你根本不会从Java Runtime.exec(),IMHO得到很多里程...

这里是一个应该让你做一些/大部分你想从Perl的(不是Java)做...什么替代:

这只是一个例子。有很多很多其他的选择。如果你想要去Java路线,搜索“屏幕刮板”或“自动化”。例如:

“希望帮助

+0

如果我使用Perl,Perl会很好,但这需要Java,因为那是我使用的编程语言。我正在制作一个自动化工具,但是想自己学习,而不是使用一个图书馆,这就是为什么我问。感谢您的回复。 – zeddex 2012-08-12 18:03:48

+0

@zeddex - 相间相位Yoda:“是或否......没有Runtime.exec()”;) – paulsm4 2012-08-12 18:10:23

+0

@zeddex - 准则:如果你不需要重新发明轮子。你不仅“完成了工作”,而且你还有机会从一个成功的设计中学习 - 也许发明更好的东西! – paulsm4 2012-08-12 18:15:10

1

我建议看看硒... 基本上,你需要(当然)是一个用于firefox进程的监视器,并且由于Firefox不提供COM,所以你需要“内部”firefox,即插件ñ。这是硒的作用。这样一个插件就可以通过简单的tcp连接向你发送任何内部信息。