首页 > 解决方案 > 在 fatJar 中打包 node.js 文件

问题描述

我有一个 Spring Boot 项目,它也同时执行一个 node.js 文件。我的项目结构是:

ROOT
 - src/
 - jsModules/
 - script.js

script.js在某一时刻,我使用以下方法从 java 代码中执行(带有一些参数):

Process proc = Runtime.getRuntime().exec(executingScriptString);

一旦我将它打包到 fatJar 中,我必须手动复制粘贴 jsModules 文件夹和 script.js 以位于 .jar 所在的文件夹根目录中。

是否有可能以某种方式将所有 JS 文件打包到 fatJar 中,所以一旦我打包它,我就不用担心 JS 文件被复制了。

我尝试搜索如何做到这一点,但没有找到任何答案。

标签: javanode.jsjar

解决方案


这是答案:

将 JS 文件放在资源文件夹中,使其在类路径中可用。

执行脚本时,请确保调整文件的路径。在我的情况下,它将是: node src/main/resources/script.js

而不是"/"File.separatorjava.io包中使用的符号,并且似乎可以正常工作,尽管在 Windows 上它会创建一个node src\main\resources\pptrSoccer.js.

希望它可以帮助某人。

编辑:我尝试使用 ResourceLoader (来自 Spring 框架)

resourceLoader.getResource("classpath:script.js").getFile().getAbsolutePath();

它在爆炸时工作(从 IDE 运行),但是当我打包到 fatJar 时它不起作用。


推荐阅读