我正试图以Java程序的形式启动firefox,到目前为止,我也知道如何使用选项来实现这一点。但我有兴趣发送一个特定的参数,这样javascript插件就可以获得它。例如,我使用命令Runtime.getRuntime().exc("/usr/bin/ffirefox")来启动firefox,我的目标是使用Runtime.get-Runtime("/usr/bin/firefox 12345"),其中12345是我的参数,并通过一个简单的附加组件获得它。
这可能吗?有没有其他方法/方法可以将参数传递到firefoxstart上的附加组件?
提前谢谢。
使用包含参数的url启动firefox。
将其用作Runtime.getRuntime().exec(new String[] {"/usr/bin/firefox", "12345"})
无法告诉您如何在Firefox插件中获取该参数。如果这是你主要问的问题,也许可以修改你的问题?
我认为您的功能会破坏firefox的安全模型。但也有一些命令可以使用,http://www.binaryturf.com/lesser-firefox-command-line-options/
首先感谢大家的回答,感谢大家帮助我完成这项工作。在对一些安全问题进行了更多的研究和思考之后,我最终使用Java流程生成器添加了一个具有我想要的值的环境变量:
//Initiates the process i'm about to start.
ProcessBuilder pb = new ProcessBuilder(args);
//Gets the system environment.
Map<String, String> env = pb.environment();
//Register VAR with value Value as an evironment variable in this process context
env.put("VAR", "Value");
//Stats the process initiated in the 1st line.
pb.start();
因此,有了这个,我可以运行一个应用程序,并在其上下文中设置环境变量,现在我只想在我的JavaScript插件中访问它们,只需使用以下命令:
var env = Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsiEnvironment);
var X = env.get('VAR');
其中X将具有环境变量VAR中的值(先前在Java代码中定义);