我有一个Spring启动应用程序,它暴露了一些休息服务。它包含一些sql文件和一些python文件,它们存储在文件夹结构resources / scripts /中的resources文件夹内的文件中。 其中一些是sql,而其中一些是python脚本。
我正在使用spring boot应用程序创建可执行jar文件。因此,当我使用maven打包应用程序时,所有这些文件都按预期进入jar文件。现在,在代码中的函数中,我有一个命令如下
Process p = Runtime.getRuntime().exec(run generator/generate.py)
generate.py基本上是一个包含要做的东西的python文件。当我在intellij中运行应用程序时,它工作正常。当我打包它并尝试执行jar文件时,它无法找到该文件并抱怨。
Error running generator/generate.py: Cannot run program "generator/generate.py" (in directory "file:/Users/bpokharel/code/oprime_fm_service/target/oprime-fmservice-V1.jar!/BOOT-INF/classes!/scripts"): error=2, No such file or directory
无法解析或执行scripts / commands.txt:45 [run generator / generate.py]
我的资源文件夹如下: -
resources/scripts/commands.txt
resources/scripts/generator/generate.py
commands.txt 包含其他命令。其中一个命令是generator / generate.py。所以我基本上是在阅读commands.txt并执行commands.txt
中定义的每个脚本我正在使用inputstream读取commands.txt,然后执行每个命令。 我相信Runtime.getRunTime会尝试在目录中执行该命令。 ,但对于可执行jar文件,我不知道如何提供文件夹名称执行命令的位置
任何帮助将不胜感激。 这有点相关,但我必须更进一步。