2011-03-06 95 views
1

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

回答

1

您可以修改Perl脚本以接受输出的绝对路径。

您可以尝试使用exec(java.lang.String[], java.lang.String[], java.io.File)设置工作目录,其中File是执行命令的目录。

如果一切都失败了,您可以随时将生成的文件从主目录复制到最终位置。

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") 
    

不幸的是,不知道你的情况更多的细节我无法提供更具体的建议。

虽然每种方法都有优点和缺点,但最好只实施最理想的方法;如果你不能让一个人工作,尝试另一个。


一个很好的免费的在线学习资源是Introduction to Linux: A Hands On Guide

第2.2节有关于cd的详细信息,您可以使用它的1.

第3节。3,第3节讲述了mv命令,这将在2.中有用。

5.1节是关于I/O重定向的。了解“输出重定向”和>运营商,对于4.很重要。

对于3.,您必须查阅您正在使用的perl程序的文档。