繁体   English   中英

如何从另一个 fat JAR 或外部源加载依赖项?

[英]How to load dependencies from another fat JAR or from external sources?

我设法将我的 Spring Boot fat JAR 分成 2 个较薄的 fat JARs,(一个带有应用程序,一个带有依赖项)。

现在,我正在尝试运行该应用程序,但我无法从 fat jar 中加载依赖项。

到目前为止,我尝试过:

java -jar app.jar -cp "deps.jar"
java -jar app.jar -cp "deps.jar/BOOT-INF/lib"

我还尝试解压缩 JAR 并尝试加载它

java -Dloader.path="jars:deps/BOOT-INF/lib" -jar app.jar
java -jar app.jar -cp "deps/BOOT-INF/lib"

但是没有任何进展。

有任何想法吗?

方法二:解压fat JAR读类

如果您使用的是 Spring Boot,则需要更改 MANIFEST 文件中的加载程序类型并包含库的路径。

如果你使用的是Gradle,在fat JAR生成过程中,可以添加:

  manifest {
    attributes 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher'
    attributes 'Class-Path': 'deps/BOOT-INF/lib'
  }

在你可以运行应用程序之后:

java -Dloader.path="jars:deps/BOOT-INF/lib" -jar app.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM