所以我有这个简单的代码:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("ls");
效果很好。 (pr 输入流会给我文件名..)
但是我想做这样的事情:
Process pr = rt.exec("~/ls");
我想获取当前登录用户主文件夹目录中的文件名。
我得到的是:
Exception in thread "main" java.io.IOException: Cannot run program "~/ls": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
最佳答案
~
是由 shell 处理的扩展,Java 不知道它。
要获取主目录,请使用 java.home
属性(使用 System.getProperty
)
请注意,如果要在特定工作目录中运行程序,请使用 ProcessBuilder
并调用 directory
方法。
关于java - 如何在 Java 中为 exec 方法的参数指定文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912146/