2012-01-31 27 views
0

我試圖從一個Java程序啓動Firefox,到目前爲止我知道如何使用選項來做到這一點。但我有興趣發送一個特定的參數,以便一個JavaScript附加組件可以獲得它。例如,我使用命令Runtime.getRuntime()。exec(「/ usr/bin/firefox」)啓動firefox,我的目標是使用像Runtime.getRuntime()。exec(「/ usr/bin/firefox 12345「),其中12345是我的參數,並通過一個簡單的插件獲取它。使用Firefox附加組件獲取特定參數

這可能嗎?是否有另一種方法/方法將參數傳遞給Firefox上的附加組件?

在此先感謝。

回答

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代碼中定義)的值;

1

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

不能告訴你如何得到這樣的說法在您的Firefox插件。也許修改你的問題,如果這就是你主要問的問題?

+0

謝謝你的回答,是的,我會這樣做,問題不是最好的。 – Tomax 2012-01-31 18:23:20

0

我認爲你的功能會打破Firefox的安全模式。但有一些命令可以使用,http://www.binaryturf.com/lesser-firefox-command-line-options/

+2

同樣,這https://developer.mozilla.org/en/Chrome/Command_Line#Sample%20code – 2012-01-31 18:24:33

+0

感謝您的awnser,我一直在想,但因爲這是適用於一個安全的環境,我認爲我沒有安全問題 – Tomax 2012-01-31 18:24:39

+0

謝謝Abhijeet Rastogi,這是我的問題的一個很好的選擇,我會給它一個測試,他們發佈結果。 – Tomax 2012-01-31 18:56:00

2

用包含參數的url啓動firefox。

+0

多數民衆贊成在一個好主意,然後捕獲與加載項的URL並提取它。唯一的問題是起始頁將是一個無效的頁面。但這是一個不錯的選擇。謝謝。 – Tomax 2012-01-31 18:28:08