4

我有一个 Maven 项目,我正在尝试执行一个脚本(用 R 编写)。我也将此脚本文件放在源代码目录中。我发现这个脚本根本没有执行。但是,当我将此脚本移到 jar 文件之外时,它会执行!谁能告诉我为什么,并给我一些解决方案以将脚本放入 jar 中同时确保其执行?

非常感谢 !

4

3 回答 3

6

我会做以下事情:

  • 使用 ClassLoader.getResourceAsStream() 获取文件的 InputStream
  • 将此 InputStream 写入 tmp 目录
  • 用 Runtime.getRuntime().execute(..) 执行它
于 2012-07-05T08:31:07.067 回答
1

jar 中的文件不再是文件,因此要执行它,您首先需要将其提取到某处,然后从外部提取的文件路径执行它

于 2012-07-05T07:50:54.420 回答
1

您需要从 jar 文件中提取脚本:

jar -xvf my.jar com/foo/my.script.sh
于 2012-07-05T07:56:06.367 回答