我正在尝试使用linux / ubuntu / gnome中的Java运行时exec运行perl命令。该命令生成一个pdf文件,但它将其保存在我的主文件夹中。有没有办法exec方法可以为执行的命令设置输出路径?提前谢谢。
答案 0 :(得分:2)
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程序的文档。
答案 1 :(得分:1)
您可以修改Perl脚本以接受输出的绝对路径。
您可以尝试使用exec(java.lang.String[], java.lang.String[], java.io.File)
设置工作目录,其中File是执行命令的目录。
如果所有其他方法都失败了,您可以随时将生成的文件从主目录复制到最终位置。