gpt4 book ai didi

java - 使用 Runtime.getRuntime() 在 JAVA 中打印 pdf 文件时出错

转载 作者:行者123 更新时间:2023-12-02 02:39:03 26 4
gpt4 key购买 nike

有一个较旧的代码以前可以工作,但现在不再工作了。它用于打印pdf文件。代码如下。

我试图找出是什么让代码提前运行,因为我觉得早期的代码不应该工作。但正如我被告知它工作正常,我确实检查了 git 历史记录。过去10年没有任何改变。

问题不在于文件,而是存在于路径上。

import java.io.IOException;

public class Test {

public static void main(String[] args) throws IOException {

String printCommand = "lp -d PRINTER_NAME -n ";
int copies = 2;
Runtime.getRuntime().exec(printCommand + copies + " " + "FILE_NAME.pdf");
}

}

执行此操作时出现以下错误:

Exception in thread "main" java.io.IOException: Cannot run program "lp": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at com.test.utd.Test.main(Test.java:12)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 5 more

最佳答案

尝试使用 ProcessBuilder 运行命令而不是从运行时执行:

ProcessBuilder pb = new ProcessBuilder("lp", "-d", "PRINTER_NAME", "-n", "2", PATH_TO_FILE);
pb.directory(new File("C:/"));
pb.redirectErrorStream(true);

Process p = pb.start();

关于java - 使用 Runtime.getRuntime() 在 JAVA 中打印 pdf 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57191206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com