我试图在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程序的文档。

10-07 13:16
查看更多