java - 运行时exec输出路径

标签 java linux perl exec runtime.exec

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

最佳答案

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 程序的文档。

关于java - 运行时exec输出路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212242/

相关文章:

perl - Intellij 和 Perl 插件中无法找到包文件警告

perl - 如何将外部程序的输出发送到 Perl 套接字?

perl - 数字和字符串自动转换对效率没有影响吗?

java - 为什么使用 javabean 绑定(bind)属性而不是事件?

linux - 如何在不使用git命令的情况下进行推送

c++ - 有什么方法可以判断 fork /执行的 Qt 应用程序的主窗口何时显示?

linux - 垃圾收集期间负载均衡器和 Tomcat 之间出现 SocketException

java 或 smart gwt- 使用 OAuth 对 REST 数据源进行身份验证

java - 如何在 Enterprise Architect 中显示扩展

java - java字符串中equals和compareto方法的区别