如何从JAR文件执行脚本?

时间:2012-07-05 07:49:43

标签: java maven jar

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

非常感谢!

3 个答案:

答案 0 :(得分:6)

我会做以下事情:

  • 使用ClassLoader.getResourceAsStream()
  • 获取文件的InputStream
  • 将此InputStream写入tmp dir
  • 使用Runtime.getRuntime()执行它.execute(..)

答案 1 :(得分:1)

jar中的文件不再是文件,因此要执行它,首先需要extract it somewhere,然后从外部提取的文件路径执行它

答案 2 :(得分:1)

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

jar -xvf my.jar com/foo/my.script.sh