2011-10-17 64 views
0

我寫了一個java程序,可以在運行時執行另一個java程序。程序如下從一個java程序傳遞值到另一個

import java.io.*; 
public class exec 
{ 
public static void main(String argv[]) 
{ 

int i=5,j=6,k=7; 
BufferedReader rd = new BufferedReader (new InputStreamReader(System.in));  
try{ 
InputStreamReader isr=new InputStreamReader(System.in); 
BufferedReader br=new BufferedReader(isr); 
System.out.println("Enter class name"); 
String s=br.readLine(); 

Process pro=Runtime.getRuntime().exec(s); 

BufferedReader in=new BufferedReader(new InputStreamReader(pro.getInputStream())); 
String line=null; 
while((line=in.readLine())!=null) 
{ 
System.out.println(line); 
} 
in.close(); 
} 
catch(Exception err) 
{ 
err.printStackTrace(); 
} 
} 
} 

如果我執行這個程序,它會提示用戶輸入任何類名(java程序)來執行。這是使用這段代碼Process pro=Runtime.getRuntime().exec(s);

一旦用戶輸入java類名稱,我應該能夠將值5,6,7傳遞給用戶輸入的java類。應該立刻通過一個值並計算該數字的平方。 我該怎麼做?

+1

*能否請您1)問一個具體問題。 2)閱讀並執行[Runtime.exec()時不會](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)的所有建議。3)使用用於1.5 + 4以上代碼的'ProcessBuilder')考慮直接從代碼中調用另一個Java類(不包括涉及的Process')5)根據慣例約定代碼。代碼縮進旨在幫助讀者,而且代碼讀起來就像是狗的早餐。 –

+0

@AndrewThompson如果你不明白這個問題,我很抱歉。我試過編輯這個問題。現在通過它並告訴我如何做到這一點? – Anil

回答

3

可以傳遞int參數你的第二個Java程序如下:

String[] cmd = { s, Integer.toString(n) }; 
Process pro=Runtime.getRuntime().exec(cmd); 

...或者作爲一個單一的String

Process pro=Runtime.getRuntime().exec(String.format("%s %d", s, n); 
+0

我試過這個,但我應該如何處理在我打電話的java類中的n的值。我試過這樣'import java.io. *; public class Test public static void main(String [] args)throws IOException { BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); String ns = rd.readLine(); int n = Integer.parseInt(ns); System.out.println(「數字的平方爲」+ n * n); } }'。我應該把'n'的值作爲命令行參數嗎? – Anil

+1

參數n可以作爲字符串從args [0]訪問;即您將需要將其重新解析爲int。 – Adamski

+0

非常感謝。我知道了。 – Anil

相關問題