2011-10-17 6 views
0

런타임 중에 다른 Java 프로그램을 실행할 수있는 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 클래스 이름을 입력하면 사용자가 입력 한 Java 클래스에 값 5,6,7을 전달할 수 있어야합니다. 한 번에 하나의 값만 전달해야하며 해당 숫자의 제곱을 계산해야합니다. 어떻게해야합니까? 다음과 같이

+1

*를 * 당신이 일을 기쁘게 수) 특정 질문. 2) [Runtime.exec()이 실행되지 않을 때] (http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)의 모든 권장 사항을 읽고 구현하십시오. 3) ProcessBuilder는 1.5+를위한 코드입니다. 4) 코드에서 직접 다른 Java 클래스를 호출하는 것을 고려하십시오. (Process가 포함되지 않습니다.) 5) 일반적인 규칙에 따라 코드를 들여 씁니다. 코드 들여 쓰기는 독자를 돕기위한 것이며, 그 코드는 개의 아침 식사처럼 읽습니다. –

+0

@AndrewThompson 질문을 이해할 수 없다면 유감입니다. 질문 편집을 시도했습니다. 지금 당장 가서 어떻게해야하는지 말해 주시겠습니까? – Anil

답변

3

당신은 당신의 두 번째 자바 프로그램에 int 인수를 전달할 수 있습니다

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

나는 이것을 시도했다. 그러나 내가 어떻게 호출해야하는지 자바 클래스에서 n의 값을 처리해야만한다. 나는 이런 식으로'java.io. import import; 공용 클래스 테스트 { public static void main (String [] args) throws IOException { BufferedReader rd = new BufferedReader (새 InputStreamReader (System.in)); String ns = rd.readLine(); int n = Integer.parseInt (ns); \t System.out.println ("숫자의 제곱은"+ n * n)입니다. } }'. 'n'값을 명령 줄 인수로 읽어야합니까? – Anil

+1

인수 n은 args [0]에서 문자열로 액세스 할 수 있습니다. 즉 int로 다시 구문 분석해야합니다. – Adamski

+0

고마워. 알았다. – Anil

1

두 번째 프로그램에서 구현할 수를 소켓 첫 번째 프로그램에서 두 번째 응용 프로그램에 메시지를 보내는 클라이언트 소켓을 작성할 수 있습니다.

는 다음과 같은 문서를 볼 수 있습니다 : "사람이 어떻게 이렇게 말해 주시겠습니까"http://download.oracle.com/javase/tutorial/networking/sockets/

관련 문제