java - 在 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 文件被复制了。
我尝试搜索如何做到这一点,但没有找到任何答案。
解决方案
这是答案:
将 JS 文件放在资源文件夹中,使其在类路径中可用。
执行脚本时,请确保调整文件的路径。在我的情况下,它将是:
node src/main/resources/script.js
。
而不是"/"
我File.separator
从java.io
包中使用的符号,并且似乎可以正常工作,尽管在 Windows 上它会创建一个node src\main\resources\pptrSoccer.js
.
希望它可以帮助某人。
编辑:我尝试使用 ResourceLoader (来自 Spring 框架)
resourceLoader.getResource("classpath:script.js").getFile().getAbsolutePath();
它在爆炸时工作(从 IDE 运行),但是当我打包到 fatJar 时它不起作用。
推荐阅读
- android - 如何获取recyclerView getItemCount - 位置从2而不是0开始
- c# - 如何使用静态资源 (.resx) 作为资源字典中具有 DataType 的 DataTemplate 的键?
- php - SimpleSAMLphp IDP、SP、MediaWiki
- cytoscape.js - 节点上的内容和标签 - Cytoscape
- django - 为 django、vue.js、rabbitmq 设置 docker
- jquery - Jquery DataTable 最初加载良好,但在发送命令以更改数据时没有格式化/样式
- python - 如何在服务器上并行运行两个 python Flask 应用程序(项目)
- javascript - 升级jquery UI库的正确方法
- asp.net - 到多个数据库的 Web API 连接字符串
- node.js - 为什么 PM2 没有启动我的 Node 进程?