用于弹簧启动的外部库文件夹

2022-09-03 07:49:47

我想知道如何为我的Spring Boot应用程序外部化所有jdbc驱动程序,一旦应用程序构建,我不想将jdbc驱动程序插入我的胖罐中。

有没有办法设置java vm参数,通知jar执行中应包含哪个外部文件夹?或者可能还存在某种弹簧属性。

例如:

java  -DLib=file:\\\c:\Drivers -jar sample.jar

答案 1

请参阅有关属性启动器的文档:

看起来您可以使用该属性来定义 lib 文件夹位置,其中包含要加载的 jar - 实际上 lib 文件夹(与 jar 内联)是默认位置:loader.path

loader.path(如果为空)默认为 lib(表示本地目录或嵌套目录(如果从存档运行)


答案 2

CLASSPATH 和 -classpath 在运行 Spring 引导 jar 文件的情况下将不起作用。因此,有以下选项可用:

  • 使用 -Dloader.path e.g.java -cp MyOwn.jar -Dloader.path=C:\Sandeep\lib -Dconsole.level=INFO -Dloader.main=abc.Main org.springframework.boot.loader.PropertiesLauncher --spring.config.name=application

  • 将其他 jar 放入 JRE/lib/ext 目录的另一个选项

  • 第三个选项,使用WinRAR应用程序打开Spring Boot Jar,并将jar文件添加到Spring Boot jar中


推荐