运行时exec输出路径

时间:2011-03-06 17:50:12

标签: java linux perl exec runtime.exec

我正在尝试使用linux / ubuntu / gnome中的Java运行时exec运行perl命令。该命令生成一个pdf文件,但它将其保存在我的主文件夹中。有没有办法exec方法可以为执行的命令设置输出路径?提前谢谢。

2 个答案:

答案 0 :(得分:2)

exec方法只是在操作系统上运行命令,因此您希望使用exec来更改运行的命令,而不是“Java”本身。

有几种可能性:

  1. 更改java程序的工作目录。 .pdf正保存在您的工作目录中,因为这是运行程序的地方。

    不幸的是,在程序启动后更改此值并不简单。然而,在程序开始之前改变是微不足道的;只需在启动程序之前更改工作目录。

  2. 在主目录中创建文件后,将文件移动到所需位置。

  3. 更改命令,使其包含目标位置。您的perl脚本可能有一个选项,可以将其输出保存到特定位置(通常为-o--output)。使用此程序将改变:

     Runtime.exec("perl someprogram");
    

    类似于:

      Runtime.exec("perl someprogram -o /path/to/some.file")
    
  4. 如果没有选项,您可能可以使用“输出重定向”。

    尝试下面的内容作为你的论点:

      Runtime.exec("perl someprogram > /path/to/some.file")
    
  5. 不幸的是,如果不了解您的情况的更多细节,我无法提供更具体的建议。

    虽然每种方法都有其优点和缺点,但最好只实施您最了解的方法;如果你不能让一个人上班,那就尝试另一个。


    一个好的,免费的在线学习资源是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是执行命令的目录。

如果所有其他方法都失败了,您可以随时将生成的文件从主目录复制到最终位置。