Мне нужно получить доступ к консоли на узле через java , как это сделать?как выполнять команды консоли в java-программе для узла
public class Comando {
public static void main(String[] args) {
String comando = "C:\\Program Files\\nodejs\\node.exe";
try {
Process process = Runtime.getRuntime().exec(comando);
OutputStream stdin = process.getOutputStream();
InputStream stderr = process.getErrorStream();
InputStream stdout = process.getInputStream();
stdin.write("1+2".getBytes());
stdin.flush();
// System.out.print(stdout.read());
stdin.close();
System.out.print(stdout.read());
//BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
//BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
// writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Может быть, это поможет вам http://docs.oracle.com/javase/6/docs/api/java/lang/ ProcessBuilder.html –
Прочитайте (и реализуйте) * все * рекомендации [Когда Runtime.exec() не будет] (http://www.javaworld.com/jw-12-2000/jw-1229-traps.html). Это может решить проблему. Если нет, он должен предоставить дополнительную информацию о причине отказа. Затем проигнорируйте, что он ссылается на 'exec' и создает' Process' с помощью 'ProcessBuilder'. Также разбивайте 'String arg' на' String [] args' для учета аргументов, которые сами содержат пробелы. –
, когда я реализую System.out.print (stdout.read()); программа возвращает меня-1 – user2740119