【问题标题】:How to give relative path to Runtime.exec如何提供 Runtime.exec 的相对路径
【发布时间】:2014-01-24 10:28:34
【问题描述】:

大家好,我想借助这段代码从netbeans 目录运行help file(.chm)

Process proc=   Runtime.getRuntime().exec("hh.exe src/MOVECG_Pro.chm");

但是当我尝试在netbeans 之外运行时出现问题,因为里面的 jar src 文件夹不存在。请帮助我如何正确编码

【问题讨论】:

  • 阅读(并实施)所有 When Runtime.exec() won't 的建议。那可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用exec 并使用ProcessBuilder 构建Process。还要将String arg 分解为String[] args 以说明本身包含空格的参数。
  • 我已阅读并实施了建议,但找不到解决方案,因为我得到了 file not foundcan not open the file 的异常。

标签: java process exec embedded-resource runtime.exec


【解决方案1】:

您已将chm 文件放在源代码目录中。显然,当您运行 JAR 时,该目录不存在。我猜你想要一个独立的 JAR,其中包含捆绑的帮助文件。

由于exec 委托本机平台将命令字符串解释为可以用来启动子进程的内容,因此您可以想象透明地访问隐藏在 JAR 存档中的文件会有问题。

所以要么单独提供帮助文件,要么编写代码在运行时从 JAR 中提取帮助文件。然后将其位置传递给hh.exe

让我也做一个一般性声明:由于您在这里编写一个 Java 程序,它应该是独立于平台的,因此您使用特定于 Windows 的帮助文件的方法并不完全符合书本。

【讨论】:

  • 非常感谢@Marko。我已经实现了你的方式!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 2013-04-06
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多