用java创建unix文件
如果在unix shell中使用此命令:用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
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。可能重复的