先阶段项目需要使用ENVI 自带的一个javaidlb.jar.具体路径
C:\Program Files\Exelis\IDL85\resource\bridges\export\java\javaidlb.jar
项目在打成.jar 包之后报错无法找到对应的jar包。
后面查阅资料可以发现将springboot 打包的jar包更换成war 发布到tomcat 然后修改tomcat 中的catalina.properties里面的
shared.loader=C:/Program Files/Exelis/IDL85/resource/bridges/export/java/javaidlb.jar
可以成功找到
但是因为项目的一些其他性质,暂时没办法打包成war包,
所以想问问大佬们,springboot如何加载一个不可移动的外部jar包?
解决方式有很多:
1、如果使用了maven或者gradle,你可以将包install到本地仓库,然后可以直接引用jar包,然后打包打入jar中,直接使用
2、启动的时候在classpath上添加这个jar包
3、使用classloader动态加载类
优先使用第一种,第二种方式最通用
这个 jar 包能复制吗?复制到你的 spring-boot 项目中,然后通过添加本地依赖方式加入:
<dependency>
<groupId>selfdefine</groupId>
<artifactId>selfdefine</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/selfdefine.jar</systemPath>
</dependency>
把外部jar包安装到maven私服不就好了?