如何从JAR文件执行脚本?

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

非常感谢 !

我会做以下事情:

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

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

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

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