![](/img/trans.png)
[英]How to open linux terminal from java and be able to execute commands in it?
[英]How does java execute terminal commands?
发现这很棘手; 具有以下代码:
String cmd = "find /home/folder/ -type f";
Runtime run = Runtime.getRuntime() ;
Process pr = run.exec(cmd);
pr.waitFor();
我会pr.getInputStream()
并在那里find
正确的结果,没问题。 但是,如果我想更具体一点,并且我的命令为cmd = "find /home/folder/ -type f -name somefile*";
,输入 stream 将为空。
现在,我认为这与交互式 shell 完成的字符串扩展有关(我想在这种情况下不会使用)。 在这种情况下, *
将没有任何意义,并且find
将寻找真正名为 "*" 的文件(类似于\*
)。 所以我试图让我的命令为sh -c "find /home/folder/ -type f -name somefile*"
。 但它也没有工作......
我错过了什么?
谢谢,
F。
Ps.:是AIX盒子,配IBM的Java JVM。
使用find
时,我总是转义通配符:
cmd = "find /home/folder/ -type f -name somefile\\*";
我认为如果您使用 ProcessBuilder 或 Runtime.exec 方法会更好,因为它们不需要 shell escaping 并且不要运行 Z2591C98B70119FE624898B1E424B5E91。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.