Java(64):动态获取jar包路径并加载到类加载路径中
前言:在做项目开始的时候,所有的jar包都放到maven里,执行也是OK的,但调用都是固定的jar包。但其实有些jar名称会改变,那么此时就需要考虑动态获取变化的jar包。
【在做项目过程中,发现有些jar包不是固定的名称,版本号会变,那么放到maven里无法获取到最新的,那么就需要动态获取jar包路径并加载到类加载路径中。】
以下是动态获取jar包路径并加载到类加载路径中方法:
1、调用:
String path=System.getProperty("user.dir");
String filepath=path+"/target/classes/";
JarLoader.loopFiles(filepath);
2、工具类
package com.ciphergateway.utils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
/**
* @author HMF
* @description jar包加载器
* @date Created on 2021年11月13日
*/
public class JarLoader {
private static final Logger log= LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);
public JarLoader() {
//NO_OP
}
/**
* 功能描述: 添加需要扫描的jar包(具体jar包名字)
* 把当前jar的路径加入到类加载器需要扫描的路径
* @param jarPath,File file=new File("D:\\aoe.jar"); addUrl(file);
* &