用Java如何实现获取linux控制台的输出(分很多)

2024-12-04 08:27:46
推荐回答(3个)
回答1:

import java.io.*;

public class Linux {
public static void main(String[] args) throws IOException {
//将根目录下的文件列出并将结果写入 /tmp/list.out
Process p = Runtime.getRuntime().exec("ls -al /");
InputStream in = p.getInputStream();
OutputStream out = new FileOutputStream("/tmp/list.out");
byte[] b = new byte[1024];
int r;
while((r=in.read(b))>-1)
out.write(b,0,r);
out.flush();
out.close();
}
}

回答2:

java test >log.txt 写入文件
查看文件 cat < log.txt

如果你是批处理文件启动的程序,只要在批处理命令以后加上
> log.txt 这样是把控制台输出全部定位到log.txt文件中

如果你想实时查看这个文件的内容(例如实时查看服务器启动log),可以在命令行输入tail -f log.txt

回答3:

用Runtime.exec()方法运行一个本地命令,此方法会返回一个Process对象,再
调用其getOutputStream()方法,就可得到一个OutputStream,大概就行了吧,此外还有getErrorStream()得到stderr。详见jdk api doc