2012-02-01 113 views
2

美好的一天每個人,我有一個程序(讓我們稱之爲'A'),這是從一個ANT腳本使用java調用。該程序使用Runtime.getRunTime.exec("batFile.bat").bat文件依次調用另一個java文件(讓它稱爲'B')。現在,問題出現了。Java進程間通信

有沒有辦法讓B可以訪問A的實例變量?

回答

4

如果在啓動進程B之前知道進程A中變量的值,那麼可以通過多種方式共享該值。

將它作爲命令行參數,例如:

String[] cmd = {"batFile.bat", variableValue}; 
Runtime.getRunTime.exec(cmd); 

其設置成B的過程中的環境變量,例如:

String cmd = "batFile.bat"; 
String[] envp = {"VARIABLE="+variableValue}; 
Runtime.getRunTime.exec(cmd, envp); 

值寫入過程A中的文件,讀取進程B中的文件。

+0

KISS方法的+1 - 如果你只是想傳遞一個值,傳遞一個值8 =} – davidfrancis 2012-02-01 12:00:03

5

否。因爲.bat文件正在創建新的jvm進程。也許你想用DB來共享數據。