Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带星号的Java ProcessBuilder命令_Java_Processbuilder - Fatal编程技术网

带星号的Java ProcessBuilder命令

带星号的Java ProcessBuilder命令,java,processbuilder,Java,Processbuilder,此命令从命令行成功运行: // /home/[user]/testproject/target/dependency/testproj-1.0-SNAPSHOT.jar ~/testproject/target/dependency$ jar -xf *.jar 但是,当我尝试通过ProcessBuilder运行相同的命令时,我得到: java.io.FileNotFoundException: *.jar (No such file or directory) ProcessBuilder

此命令从命令行成功运行:

// /home/[user]/testproject/target/dependency/testproj-1.0-SNAPSHOT.jar
~/testproject/target/dependency$ jar -xf *.jar
但是,当我尝试通过ProcessBuilder运行相同的命令时,我得到:

java.io.FileNotFoundException: *.jar (No such file or directory)
ProcessBuilder代码:

ProcessBuilder builder = new ProcessBuilder("jar", "-xf", "*.jar");
builder.directory("/home/[user]/testproject/target/dependency");
Process process = builder.start();
int exitValue = process.waitFor();
如何使用命令参数中的“*”?

在命令行中,shell正在执行全局处理,将
*.jar
转换为实际文件列表,所有文件都以
.jar
结尾

通过ProcessBuilder运行时,不涉及shell。您必须:

  • 在shell中运行这个。也就是说,命令将是
    /bin/bash
    或您使用的任何shell,
    jar
    命令将是shell的第一个参数
  • 自己执行全局绑定并指定JAR列表

  • 不,这意味着jar命令在单个命令行上提供了多个jar文件名。感谢您的澄清。(我之前问过/bin/bash是否会生成多个“jar”命令)。