我正在尝试在 linux/ubuntu/gnome 中使用 Java runtime exec 运行 perl 命令。该命令生成一个 pdf 文件,但将其保存在我的主文件夹中。 exec 方法是否可以为执行的命令设置输出路径?提前致谢。
最佳答案
exec
方法只是在操作系统上运行命令,因此您需要更改正在使用 exec
运行的命令,而不是“Java”中的任何内容"本身。
有几种可能性:
更改 java 程序的工作目录。
.pdf
保存在您的工作目录中,因为这是程序运行的地方。不幸的是,在程序启动后更改此值并不简单。然而,在程序开始之前进行更改是微不足道的;只需在启动程序之前更改工作目录即可。
在您的主目录中创建文件后,将文件移动到所需位置。
更改命令,使其包含目标位置。您的 perl 脚本可能有一个选项,可以让您将它的输出保存到某个位置(通常是
-o
或--output
)。使用这个你的程序将从:Runtime.exec("perl someprogram");
类似于:
Runtime.exec("perl someprogram -o /path/to/some.file")
如果没有选项,您可以使用“输出重定向”。
尝试像下面这样的东西作为你的论点:
Runtime.exec("perl someprogram > /path/to/some.file")
很遗憾,在不了解您情况的更多细节的情况下,我无法提供更具体的建议。
虽然每种方法都有优点和缺点,但最好只实现您最了解的方法;如果您不能让一个工作,请尝试另一个。
一个很好的免费在线学习资源是 Introduction to Linux: A Hands On Guide .
第 2.2 节详细介绍了 cd
,您可以将其用于 1.
。
第 3.3 节第 3 节介绍了 mv
命令,这在 2.
中很有用。
5.1 节是关于 I/O 重定向的。了解“输出重定向”和 >
运算符对于 4.
很重要。
对于 3.
,您必须查阅您正在使用的 perl 程序的文档。
关于java - 运行时exec输出路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212242/