当前位置: 首页 > 面试题库 >

java Runtime.getRunTime()。exec和通配符?

谭敏学
2023-03-14
问题内容

我正在尝试通过使用删除垃圾文件

Process p = Runtime.getRuntime().exec();

只要我不使用通配符,它​​就可以正常工作,即,这有效:

Process p = Runtime.getRuntime().exec("/bin/rm -f specificJunkFile.java");

而以下内容返回“没有此类文件或目录”:

Process p = Runtime.getRuntime().exec("/bin/rm -f *.java");

我应该能够做到这里概述的所有美好的事情,对吗?


问题答案:

我可能建议您让Java为您执行此操作?

  • 使用file.listFiles()获取文件列表
  • 如果需要,使用file.getName()。contains(string)对其进行过滤
  • 遍历执行file.delete()的数组

优点:改进的可移植性,节省了exec()的成本



 类似资料:
  • 我正在使用java执行一个curl命令。 我想在我的代码中获取这个curl命令的输出,但是我的stdoutout是空的。 尝试手动执行curl命令,工作正常。然后我打印了标准误差,我可以看到: 当curl命令被手动执行时,它工作得很好,那么为什么不通过Runtime.getRuntime()呢? 请建议!!任何帮助将不胜感激。

  • outputs/exec 插件的运用也非常简单,如下所示,将 logstash 切割成的内容作为参数传递给命令。这样,在每个事件到达该插件的时候,都会触发这个命令的执行。 output { exec { command => "sendsms.pl "%{message}" -t %{user}" } } 需要注意的是。这种方式是每次都重新开始执行一次命令并退出。本

  • 问题内容: 和MySQL中的通配符有什么区别? 在这样的查询中: 问题答案: 只能在全文搜索中用作通配符(或截断),而(匹配0个或更多字符)和(恰好匹配一个字符)仅适用于LIKE查询。

  • 问题内容: 我希望能够将Java应用程序中以字符串表示的许多连续命令发送到SSH服务器以执行。我应该使用: -要么- 问题答案: 使用shell通道启动外壳(在Unix上为sh或bash或类似的东西,在Windows上通常为cmd.exe)并创建控制台(如果在本地运行它们,则在屏幕上看到的内容)。您有一个提示,您可以将其解析或用于检测命令是否完成。 使用命令通道,将为每个命令启动一个shell实例

  • 问题内容: 我必须编写一个可以运行管道的外壳。例如“” 这样的命令。我已成功解析了用户给出的命令,如下所示: “ ls” = firstcmd “ -l” = frsarg “ wc” = scmd “ -l” = secarg 现在,我必须使用两个fork,因为命令分别是两个和一个管道。我为执行命令编写的代码块如下: 因此,当我运行外壳程序并输入命令(例如)时,执行程序的结果不会显示,但外壳程序

  • 问题内容: 我有一个存储过程[A],它创建了另一个存储过程[B] [A]永远不会由最终用户运行,并且没有参数或其他不受信任的数据。取而代之的是,它仅由我用来自动执行复杂SP [B]的创建。[A]除非内部结构发生更改,否则总会有相同的结果。因此,我认为这是安全的。 [B]由于使用xml,因此要求Quoted_Identifiers处于启用状态。 如果我复制并粘贴生成的SP,它可以正常工作,但是如果我