UPDATE: I found a crucial part to why this probably isn't working! I used System.setOut(out); where out is a special PrintStream to a JTextArea
एक प्रक्रिया
से एक जावा InputStream मुद्रण इस कोड है, लेकिन इस मुद्दे को मैं आ रही हैं कि जानकारी केवल बाहर छपा है एक बार मैं इस प्रक्रिया में पहुंचते हैं।
public Constructor() {
main();
}
private void main() {
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
ProcessBuilder builder = new ProcessBuilder("java", textFieldMemory.getText(), "-jar", myJar);
Process process = builder.start();
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream), 1);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
inputStream.close();
bufferedReader.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
});
}
वर्तमान उत्पादन:
Line 1
Line 2
Line 3
Line 4
Line 5
यह सही उत्पादन होता है, लेकिन जब मैं प्रक्रिया समाप्त यह केवल एक बड़ा ब्लॉक के रूप में मुद्रित किया जा रहा है।
क्या किसी को पता है कि समस्या क्या है? यदि ऐसा है तो आप मुझे समझाने में मदद कर सकते हैं कि यह क्यों हो रहा है, अग्रिम धन्यवाद।
उत्पादन 'BufferedReader' में बफ़र कर दिया गया है, बस' InputStream' से सामग्री पढ़ने सीधे देखने के लिए अगर यह बनाता है की कोशिश के लिए Concurrency in Swing पर एक नजर डालें एक अंतर – MadProgrammer
मैं @MadProgrammer से सहमत हूं कि समस्या शायद बफर के साथ है। हालांकि, मैं सुझाव देता हूं कि 'BufferedReader' बफर आकार को 1 [इसके दो पैरामीटर कन्स्ट्रक्टर] के साथ सेट करें (http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html# BufferedReader% 28java.io.Reader,% 20int% 2 9): 'नया BufferedReader (नया इनपुटस्ट्रीम रीडर (इनपुटस्ट्रीम), 1) ' – DaoWen
एक बाइटएरे ऑटपुटस्ट्रीम का उपयोग करना बेहतर होगा? मैं धाराओं के लिए पूरी तरह से नया हूं, और यह मुझे एक्सडी – Ciphor