मुझे लगता है कि यह संभव है न, लेकिन मैं उपयोग कर रहा है:कमांड लाइन में उपयोगकर्ता इनपुट;
Process p = Runtime.getRuntime().exec(command);
कमांड लाइन पर आदेशों को चलाने के लिए, लेकिन अब मैं एक स्थिति करवाते आए हैं जहां आदेश मैं भाग रास्ता चला रहा हूँ के माध्यम से के लिए पूछेंगे कुछ उपयोगकर्ता इनपुट, उदाहरण के लिए एक उपयोगकर्ता नाम।
इसे निष्पादित करने वाले आदेश के लिए तर्क द्वारा हल नहीं किया जा सकता है, क्या कोई तरीका है कि मैं उपयोगकर्ता नाम को उसी कमांड लाइन इंस्टेंस में पास कर सकता हूं और जारी रख सकता हूं?
--- संपादित करें ---
मैं अभी भी नहीं कर सकते यह काम करने के लिए मिलता है। कमांड लाइन पर ये चरण हैं:
C:\someProgram.exe
Login:
Passowrd:
इसलिए मुझे रनटाइम पर संकेत मिलने पर लॉगिन और पासवर्ड पास करने की आवश्यकता है।
try {
String CMD = "\"C:\\someProgram\"";
Scanner scan = new Scanner(System.in);
ProcessBuilder builder = new ProcessBuilder(CMD);
builder.redirectErrorStream(true);
Process process = builder.start();
InputStream is = process.getInputStream();
BufferedReader reader = new BufferedReader (new InputStreamReader(is));
OutputStream out = process.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out));
String line;
try {
while (scan.hasNext()) {
String input = scan.nextLine();
if (input.toLowerCase().startsWith("login")) {
writer.write("myUsername");
} else if(input.toLowerCase().startsWith("password")){
writer.write("myPassword");
}
writer.flush();
line = reader.readLine();
while (line != null) {
System.out.println ("Stdout: " + line);
line = reader.readLine();
}
if (line == null) {
break;
}
}
process.waitFor();
}
finally {;
writer.close();
reader.close();
}
}
catch (Exception err) {
System.err.println("some message");
}
Ive तरह बातें करने की कोशिश की: कोड मैं यह does not काम मिल गया है writer.write ("myUsername \ n");
कोई मदद, मैं देख सकता हूं कि कुछ प्रोग्राम्स.एक्सई को प्रक्रियाओं में बुलाया जाता है और चल रहा है, लेकिन यह बस लटकता है।
क्या आपने जांच की है कि 'प्रक्रिया' के पास ऐसा करने के लिए कोई तरीका है या नहीं? –
हाँ, उदाहरण के लिए प्रक्रिया # getOutputStream() :) – hoaz