我正在尝试使用 Java 使用 jar 命令将文件夹中的所有文件打包,如下所示,
jar -cvf /Abhishek/logs.jar my_directory/logs/*.logs*
我正在使用 Java 来执行此操作。
String cmd[] = {"jar", "-cvf", "/Abhishek/logs.jar", "my_directory/logs/*.logs*"};
pb = Runtime.getRuntime().exec(cmd);
但只有 list 存储在 jar 中。
added manifest
当我提取 jar 文件时,我得到了 list 文件。 所以我对
*log.*
是否允许使用这种类型的语法? 因为它在终端中运行良好。
有人可以解释一下吗?
谢谢。
最佳答案
在 Linux 上,文件通配是由 shell 完成的。因此,当您在终端输入 *.log
时,shell 会将其展开到匹配文件列表。然后将其传递给程序。
如果直接执行程序,则必须自己扩展模式。或者您可以让 shell 使用类似的命令来执行它
String cmd[] = {"sh", "-c", "jar -cvf /Abhishek/logs.jar my_directory/logs/*.logs*"};
关于java - 根据扩展名扰乱目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103834/