Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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 为什么我得到错误=2没有ProcessBuilder的这样的文件或目录_Java_Terminal_Processbuilder - Fatal编程技术网

Java 为什么我得到错误=2没有ProcessBuilder的这样的文件或目录

Java 为什么我得到错误=2没有ProcessBuilder的这样的文件或目录,java,terminal,processbuilder,Java,Terminal,Processbuilder,我最近正在使用ProcessBuilder制作一个程序,该程序提供命令行输入,但每当我运行命令时,都会收到以下错误消息: java.io.IOException: Cannot run program "convert" (in directory "/Users/me/Downloads/SpritesFront"): error=2, No such file or directory at java.base/java.lang.ProcessBuilder.start(Proce

我最近正在使用ProcessBuilder制作一个程序,该程序提供命令行输入,但每当我运行命令时,都会收到以下错误消息:

java.io.IOException: Cannot run program "convert" (in directory "/Users/me/Downloads/SpritesFront"): error=2, No such file or directory
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at Downloader.uncompressImage(Downloader.java:32)
    at Main.main(Main.java:51)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:319)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:250)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 3 more
这就是我调用方法的地方:

for (String element : allNames) {

    myDownloader.uncompressImage(element, false, "/Users/me/Downloads/SpritesFront");

}
allNames
是一个数组,它保存我试图解压缩的文件的名称

有人知道错误消息的原因吗


编辑:如果有人想知道convert命令是我通过自制软件安装在计算机中的ImageMagick命令,我的猜测是
name+b+“.gif”
无法解析为
/Users/me/Downloads/SpritesFront
目录中的文件名。我建议您在使用
args
之前先打印出它们的值,以便查看发生了什么
System.out.println(Arrays.toString(args))
。此外,您可能需要指向convert安装在第一个参数中的完整路径,如“/home/scripts/convert”。感谢您的帮助,我已经尝试了您的第一个解决方案,但正在打印的参数与我计算机上的文件名匹配,所以不是这样。你说的第二件事,我不知道convert安装在哪里,因为homebrew为我安装了ImageMagick。有没有一种方法我可以找到它,试着看看它是否在那里工作?另外,当您说第一个arg时,您的意思是将convert arg替换为它的位置,还是只是在convert之前添加一个arg?我立即猜测,
name+b+“.gif”
不会解析为目录
/Users/me/Downloads/SpritesFront
中的文件名。我建议您在使用
args
之前先打印出它们的值,以便查看发生了什么
System.out.println(Arrays.toString(args))
。此外,您可能需要指向convert安装在第一个参数中的完整路径,如“/home/scripts/convert”。感谢您的帮助,我已经尝试了您的第一个解决方案,但正在打印的参数与我计算机上的文件名匹配,所以不是这样。你说的第二件事,我不知道convert安装在哪里,因为homebrew为我安装了ImageMagick。有没有一种方法我可以找到它,试着看看它是否在那里工作?另外,当您说第一个arg时,您的意思是将convert arg替换为它的位置,还是只是在convert之前添加一个arg?
for (String element : allNames) {

    myDownloader.uncompressImage(element, false, "/Users/me/Downloads/SpritesFront");

}