java - 如何在 Java 中为 exec 方法的参数指定文件夹?

标签 java unix

所以我有这个简单的代码:

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/

相关文章:

java - 使用反射来使用特定的类构造函数并创建新对象

java - 针对 SSE2 之前的处理器的 Java 运行时如何实现浮点基本操作?

linux - 当在内部使用 bash 变量时,awk 命令无法按预期工作

java cmd 命令适用于 Windows,但不适用于 centOS

unix - 通过ffmpeg命令从视频文件转换为图像文件后如何保持方向号(exif)

Java 通过 Socket 传输属性

java - 如何修复 HiveMQ 客户端中未定义的 MqttChannelInitializer 构造函数?

java - Java服务器从MySql数据库获取信息到客户端

linux - 在unix中通过单列合并两个文件

检查来自 C 程序的 UNIX 命令行参数、管道和重定向