我想知道如何为我的Spring Boot应用程序外部化所有jdbc驱动程序,我不想在构建应用程序后将jdbc驱动程序插入到我的胖jar中。
有没有办法设置java vm参数,通知jar执行包含哪个外部文件夹?或者可能存在某种弹簧属性。
例如:
java -DLib=file:\\\c:\Drivers -jar sample.jar
答案 0 :(得分:9)
请参阅有关PropertiesLauncher的文档:
看起来你可以使用loader.path
属性来定义一个lib文件夹位置,包含要加载的jar文件 - 实际上lib文件夹(与jar内联)是默认位置:
loader.path(如果为空)默认为lib(表示本地目录或嵌套的目录,如果从存档运行)
答案 1 :(得分:0)
CLASSPATH 和 -classpath 在运行 Spring boot jar 文件的情况下将不起作用。所以有以下选项可用:
使用 -Dloader.path 例如 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< /p>
另一种将其他 jars 放入 JRE/lib/ext 目录的选项
第三个选项,用 WinRAR 应用程序打开 Spring Boot Jar 并将 jar 文件添加到 Spring Boot jar 中
答案 2 :(得分:-2)
不是类路径的用途吗?只要jdbc驱动程序jar在类路径上,这应该可行。像这样:
java -classpath /path/to/driver/jar -jar application.jar
您也可以为其设置CLASSPATH环境变量。