springboot启动时加载外部jar?
现有一个springboot项目,通过扫描二维码查询信息,比如一棵树,扫描二维码后可以看到他相关的信息。但这个项目不止有树类型,还有道路,某个物品。所以将项目分模块开发,核心模块作为一个jar包,复制提供基础服务如数据导入导出。各类型构建成单独的jar。部署时需要那种类型就加载对应的jar。这样做是为了满足不同客户需求。尝试:
java -Xbootclasspath/a:file:./libs -jar main.jar
,运行后并没有加载libs中的jarjava -Djava.ext.dirs=file:./libs -jar main.jar
,启动异常错误: 找不到或无法加载主类 .ext.dirs=file:..libs 原因: java.lang.ClassNotFoundException: /ext/dirs=file://libs
java -Dloader.path=file:./libs -jar main.jar
与第2种一样错误
请问需要使用什么方式才能在启动时同时加载外部jar呢?
回复
1个回答
test
2024-06-21
java -classpath './libs*:main.jar' org.springframework.boot.loader.launch.JarLauncher
# or
java -cp './libs*:main.jar' org.springframework.boot.loader.launch.JarLauncher
使用 -jar
启动时,-cp
会被忽略。
因此只能将运行 jar 也放入 -cp
中,再使用 main 类启动。
spring boot 的 main 类,打包成 jar 时,会变为 org.springframework.boot.loader.launch.JarLauncher
。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容