用java创建unix文件

用java创建unix文件,java,linux,unix,Java,Linux,Unix,如果在unix shell中使用此命令: ls -lrt > ttrr 我得到我的输出 但当我将该命令放入java程序中时,它不起作用,不会给出任何错误,但在程序执行完成后不会创建任何文件 这是我的节目: public class sam { public static void main(String args[]) { try { Runtime.getRu

如果在unix shell中使用此命令:

ls -lrt > ttrr 
我得到我的输出

但当我将该命令放入java程序中时,它不起作用,不会给出任何错误,但在程序执行完成后不会创建任何文件

这是我的节目:

public class sam
   {
       public static void main(String args[])
         {
            try
               {
                 Runtime.getRuntime().exec(" ls -lrt > ttrr");
               }
          catch(Exception e)
                {
                  e.printStackTrace();
                }
         }
   }

在Unix中,您需要知道命令行首先由shell处理,然后执行生成的字符串。在您的情况下,此命令:
ls-lrt>ttrr
中有一个必须由shell处理的

使用
Runtime.getRuntime().exec(命令)时
shell不会处理
命令
字符串,而是直接将其发送到操作系统执行

如果希望正确执行命令(我说的是
ls-lrt>ttrr
),则必须在同一个命令中执行shell。在Bash的情况下,您可以使用如下内容:

public static void main(String args[]) {
    try {
        Runtime.getRuntime().exec(new String[] {"bash", "-c", "ls -lrt > ttrr"});
    } catch(Exception e) {
        e.printStackTrace();
    }
}

真正执行的是一个带有两个参数的命令:“bash”(shell程序),“-c”是在命令行中执行脚本的bash选项,“ls-lrt>ttrr”是您想要运行的实际“命令”。

这是一个家庭作业问题吗。为什么不使用Java API创建文件/目录…@Jayan是正确的。它也适用于其他操作系统。更好地使用JavaAPI。可能重复的