gpt4 book ai didi

java - 从 Java 应用程序启动进程

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

我或多或少知道如何执行此操作,但我认为由于缺乏经验,我对这个命令的复杂性感到困惑。

我正在尝试将一些原始 html 输入到 wkhtmltopdf 中。我可以从命令行执行此操作,如下所示:

echo "<p>Hello</p>" | wkhtmltopdf - ~/somePdf.pdf

这很好用,但是我如何从 Java 应用程序中执行此操作?这是我尝试过的一些事情:

String[] cmd = { "echo", html.body(), "|", "wkhtmltopdf", "-", "/home/sam/yourPdf.pdf" };
Runtime.getRuntime().exec(cmd);

或者

Runtime.getRuntime().exec("echo " + html.body() + " | wkhtmltopdf - /home/sam/yourPdf.pdf");

其中任何一个都不会在我的主文件夹中生成文件。

我读到 wkhtmltopdf 将输出到 STDERR,但我不知道如何从 Eclipse 中查看它。有人告诉我它应该在我的控制台 View 中可用,但我在那里看不到任何内容。

感谢任何帮助,谢谢!

编辑

接受的答案适用于 wkhtmltopdf,但适用于其他使用 Play! 的人。找到这篇文章的框架,there is a Play! module基于 scala 模板生成 PDF。它工作得很好,但是don't forget to set media="print" in your stylesheet :)

最佳答案

您不能直接执行此操作,因为您正在运行两个命令并创建一个管道。 Runtime.exec()ProcessBuilder.command() 方法都不是为此创建的。从 Java 实现类似功能的最简单方法是将所有这些内容放入 shell 脚本中,并使用 Runtime.exec() 调用该脚本。

编辑:您还可以跳过 shell 脚本并调用

Runtime.getRuntime().exec( new String[] { "bash", "-c", "\"echo \"<p>Hello</p>\ | wkhtmltopdf - ~/somePdf.pdf\""} );

这样可以节省您编写 shell 脚本的时间,但您可能需要稍微修改一下引号才能使其正确。

关于java - 从 Java 应用程序启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000609/

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