使用firefox附加组件获取特定参数

时间:2012-01-31 18:10:37

标签: java firefox arguments add-on args

我正在尝试从一个Java程序启动firefox,到目前为止我知道如何使用选项。但我有兴趣发送一个特定的参数,所以一个JavaScript加载项可以获得它。 例如,我使用命令Runtime.getRuntime()。exec(“/ usr / bin / firefox”)来启动firefox,我的目标是使用类似Runtime.getRuntime()。exec(“/ usr / bin / firefox” 12345“),其中12345是我的论点,并通过一个简单的附加组件获得它。

这有可能吗?是否有另一种方法/方法将参数传递给firefox start上的加载项?

提前致谢。

4 个答案:

答案 0 :(得分:2)

使用包含您的参数的网址启动Firefox。

答案 1 :(得分:1)

将其用作Runtime.getRuntime().exec(new String[] {"/usr/bin/firefox", "12345"})

无法告诉您如何在Firefox插件中获取该参数。如果这是你主要问的话,也许可以修改你的问题?

答案 2 :(得分:0)

我认为你的功能会打破firefox的安全模型。但是您可以使用命令http://www.binaryturf.com/lesser-firefox-command-line-options/

答案 3 :(得分:0)

首先,谢谢大家的回答,大家帮助我完成这项工作。经过一些研究和思考一些安全问题之后,我最终使用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代码中定义);