Basit bir java programı üzerinde çalışıyorum. Başka bir java programını derler ve çalıştırır. Derlemek ve çalıştırmak için Runtime.exec() işlevini kullanıyorum. Derleme ile ilgili bir sorun yok. ama ne zaman çalışırsa, ikinci programın klavyeden okunacak bir girişi olması gerekiyorsa, bunu ana işlemden sağlayamıyorum. GetOutputStream() işlevini kullandım. ama yardım edemedi. Kodumu vereceğim.Başka bir java programından bir java programı çalıştırma
public class sam {
public static void main(String[] args) throws Exception {
try {
Process p = Runtime.getRuntime().exec("javac sam2.java");
Process p2 = Runtime.getRuntime().exec("java sam2");
BufferedReader in = new BufferedReader(
new InputStreamReader(p2.getInputStream()));
OutputStream out = p.getOutputStream();
String line = null;
line = in.readLine();
System.out.println(line);
input=input+"\n";
out.write(input.getBytes());
p.wait(10000);
out.flush();
}catch (IOException e) {
e.printStackTrace();
}
}
}
Bu benim ana programım (sam.java). Aşağıdaki
benim ikinci program sadece baskı ifadeleri varsa hiçbir sorun yoktur sam2.java
public class sam2 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("Enter the number..\n");
str = br.readLine();
System.out.println(Integer.parseInt(str));
}
}
ait kodudur. Ama sorun, diğerinden bir şey okumak zorunda kaldığımda ortaya çıkıyor.
sam'ın STDIN'den sam2'ye bir çeşit boru yapmak zorunda kalacaksınız, ama bu onun değerinin daha fazla sıkıntısı çekebilir. –
Lütfen java adlandırma kurallarını öğrenip onlara yapıştırın, burada: sınıf adları büyük harfle başlamalıdır. – kleopatra
Basit bir örnek sunmaya çalışıyordum. tavsiyeniz için teşekkürler .. :) – BBHeeMAA