小编典典

具有类路径的Spring Boot可执行Jar

spring-boot

我正在使用Spring Boot构建与企业软件系统交互的软件系统。我的系统依赖于该企业系统中的某些jar和*
.ini文件,因此我无法将所有依赖项打包在Maven中。我希望能够将Spring
Boot作为具有嵌入式Tomcat的可执行Jar运行。我还希望能够通过命令行设置类路径。所以像:

java -classpath /home/sleeper/thirdparty/lib -jar MyApp.jar

但是,-classpath和-jar不能共存。我已经尝试过“
-Dloader.path”。它能够加载文件夹下的所有jar文件,但不能加载其他文件,例如文件夹中的* .ini文件。

那么,有没有一种方法可以使-classpath与带有嵌入式Tomcat的Spring可执行jar一起使用?

预先感谢您提供的所有帮助。


阅读 437

收藏
2020-05-30

共1个答案

小编典典

如果只想添加外部库,则可以使用该loader.path属性。

java -Dloader.path="your-lib/" -jar your-app.jar

更新

如果还需要从类路径读取其他文件,则必须创建/更改应用程序的清单文件。

假设您正在从类初始化Spring Boot上下文de.app.Application。您MANIFEST.MF应该如下所示:

Manifest-Version: 1.0
Main-Class: de.app.Application
Class-Path: /home/sleeper/thirdparty/lib/

并且,您只需使用即可启动您的应用java -jar MyApp.jar

有关MANIFEST.MF的更多信息,请参见使用清单文件:基础知识

2020-05-30