使用各种Java API我可以成功地在Java中实现以下shell命令:pwd, dir/ls, copy/cp, del/rm
而不调用shell本身来为我执行这些命令。
如,
case "pwd":
System.out.println(System.getProperty("user.dir"));
break;
case "dir":
case "ls":
File myDir = new File(System.getProperty("user.dir"));
String[] filesInDir = myDir.list();
for(String fn: filesInDir)
System.out.println(fn);
break;
唯一给我带来麻烦的基本命令是“cd”。肯定有一个API函数可以让我这样做吗?但是,如果有我错过了它。
注意:我不是要在程序外部执行任何操作,我只是希望能够在程序运行期间以交互方式导航文件系统,并通过API以非常有限的方式操作文件。换句话说,这个程序模拟了一个非常基本的shell。
我已经看到了这些问题,但他们并没有真正帮助过,有人说这是不可能的,是真的吗?
How to change current directory in JAVA?
Changing the current working directory in Java?
Changing the current directory in Java to implement "cd" command in linux
将Windows 7与JDK 7一起使用。
答案 0 :(得分:1)
没有这样的api函数,但您可以模拟它:将当前目录存储在变量中。在初始化期间,将此变量分配给System.getProperty(" user.dir")。在所有方法中使用此变量。 " CD"命令应该改变这个变量。