我尝试了一个简单的程序来在运行时执行Linux命令。但是下面的程序被编译并运行没有任何错误,但文本文件没有按预期创建。这个程序有什么问题吗?
import java.io.*;
class ExecuteJava
{
public static void main(String args[])
{
String historycmd = "cat ~/.bash_history >> Documents/history.txt";
try
{
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(historycmd);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
答案 0 :(得分:2)
尝试访问Process提供的一些功能。我以exitValue开头。通常,-1
表示出现问题,而0
表示没有发生任何特别糟糕的事情。
同时尝试InputStream和Error Stream,并完整阅读。看看是否有适合您的反馈。
除此之外,请在评论中尝试 andy256 。确保程序的执行目录中存在Documents
目录。
答案 1 :(得分:1)
追加运算符>>
应该被解释为命令shell的一部分。使用
String[] historycmd =
{ "bash", "-c", "cat ~/.bash_history >> Documents/history.txt"};