繁体   English   中英

ProcessBuilder导致无法运行程序

[英]ProcessBuilder results in cannot run programm

以下命令可直接在控制台(debian)中运行:

xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url='https://www.google.com' --out=/home/admin/screenshot_name_new.png

现在,我试图在ProcessBuilder中使其工作,我尝试了以下两件事:

List<String> processArguments = new ArrayList<String>();
processArguments.add("/usr/bin/xvfb-run");
processArguments.add("--server-args=\"-screen 0, 1024x768x24\" /usr/bin/cutycapt");
processArguments.add("--url=https://www.google.com");
processArguments.add("--out=/home/admin/screenshot_name_new.png");
ProcessBuilder pb = new ProcessBuilder(processArguments);
Process p = pb.start();

无法使用:/home/admin/screenshot_name_new.png(没有此类文件或目录)

ProcessBuilder pb = new ProcessBuilder("/usr/bin/xvfb-run --server-args=\"-screen 0, 1024x768x24\" /usr/bin/cutycapt --url='https://www.google.com' --out="/home/admin/screenshot_name_new.png);

结果是:

 Cannot run program "\usr\bin\xvfb-run --server-args="-screen
 0,1024x768x24" \usr\bin\cutycapt --url='https://www.google.com'
 --out=/home/admin/screenshot_name_new.png": error=2, No such file or directory

我究竟做错了什么?

更改此:

processArguments.add("--server-args=\"-screen 0, 1024x768x24\" /usr/bin/cutycapt");

对此:

processArguments.add("--server-args=-screen 0, 1024x768x24");
processArguments.add("/usr/bin/cutycapt");

那是两个单独的论点。 并且引号仅由外壳程序用来指示空格是参数的一部分; 直接将参数传递给流程时不需要它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM