我尝试在java代码中执行一个基本命令,即“java -version”。我的代码适用于shell命令,例如“ls”,“echo $ PATH”等。 我的代码:
import java.io.*;
public class cmd {
public static void main(String[] args) {
String command = "java -version";
Process proc = null;
try {
proc = Runtime.getRuntime().exec(command);
} catch (IOException e1) {
System.out.println( "IOException 1" );
}
BufferedInputStream buffer = new BufferedInputStream( proc.getInputStream() );
BufferedReader commandOutput= new BufferedReader( new InputStreamReader( buffer ) );
String line = null;
try {
while ( ( line = commandOutput.readLine() ) != null ) {
System.out.println( line );
}
commandOutput.close();
} catch ( IOException e) {
System.out.println( "IOException 2" );
}
}
}
代码无异常或错误,但没有输出。
如果String command =“ls”,代码可以工作,输出可以在控制台中看到。
答案 0 :(得分:1)
检查您拥有的Process对象的.getErrorStream()和.getOutputStream()。您可能会看到一条错误消息,告诉您需要指定java可执行文件的完整路径才能使其正常工作。但是,如果原因不同,您应该在输出所提到的流的内容时看到。
答案 1 :(得分:0)
将命令的输出重定向到像“ls> tempt.txt”这样的临时文件。这可能会解决问题