`

class 类与jar 包的动态加载

    博客分类:
  • java
阅读更多

前段时间要使用class 类与jar 包的动态加载,在网络上找了很多资料,都不完整,现在我把简单整理与修改后的代码贴出来供大家参考, 如果有错误,请大家指出,:)

jar 包加载

package com.sms.util;

import java.net.URLClassLoader;
import java.net.URL;
import java.io.File;
import java.io.IOException;

 

public class NewClassLoader
    extends URLClassLoader {

  public NewClassLoader() {
    super(new URL[0], ClassLoader.getSystemClassLoader());
  }

  public void addPath(String paths) {
    if (paths == null || paths.length() <= 0) {
      return;
    }
    String separator = System.getProperty("path.separator");
    String[] pathToAdds = paths.split(separator);
    for (int i = 0; i < pathToAdds.length; i++) {
      if (pathToAdds[i] != null && pathToAdds[i].length() > 0) {
        try {
          File pathToAdd = new File(pathToAdds[i]).getCanonicalFile();
          System.out.println(pathToAdd.toURL());
          addURL(pathToAdd.toURL());
        }
        catch (IOException e) {
          Constants.exceptionHandling(e);
        }
      }
    }
  }

}

 

类加载

import java.net.URLClassLoader;
import java.net.URL;
import java.io.File;
import java.io.IOException;

 

public class NewClassLoader
    extends URLClassLoader {

  public NewClassLoader() {
    super(new URL[0], ClassLoader.getSystemClassLoader());
  }

  public void addPath(String paths) {
    if (paths == null || paths.length() <= 0) {
      return;
    }
    String separator = System.getProperty("path.separator");
    String[] pathToAdds = paths.split(separator);
    for (int i = 0; i < pathToAdds.length; i++) {
      if (pathToAdds[i] != null && pathToAdds[i].length() > 0) {
        try {
          File pathToAdd = new File(pathToAdds[i]).getCanonicalFile();
          System.out.println(pathToAdd.toURL());
          addURL(pathToAdd.toURL());
        }
        catch (IOException e) {
          Constants.exceptionHandling(e);
        }
      }
    }
  }

}

分享到:
评论

相关推荐

    Spring bean 动态注册,jar包热替换

    Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class...测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录中的jar实现类。

    动态加载jar包的实现

    一个工具类实现了动态加载jar包 在不重启服务器的情况下,可以调用jar包的class

    eclipse编译.class所需jar包

    eclipse查看源码可以通过反编译成.class文件,插件所需要有jad.exe net.sf.jadclipse_3.3.0.jar

    根据class类名在所有Jar包文件中查找class类路径以及jar名字

    功能讲解: 1.搜索分析指定路径下所有jar包中是否存在指定文件。譬方说要在jar包中查询某个**.class文件。...6.查看Class从那个jar文件加载及在jar文件中查找Class 7.快速找出Class文件所在的Jar文件

    在可执行jar中载入第三方jar的几个解决方法

    开发完毕,部署的时候,将开发的class打成一个可执行jar包,会发现通过Class.forName(String classname) 或ClassLoader.getSystemClassLoader().loadClass(String classname)来动态载入存在于第三方jar包中的class会抛...

    Java加载。jar包

    在jdk1.2以后,类加载是通过委托来完成的,这意味着如果 ClassLoader 不能找到类,它会请求父代 ClassLoader 来执行此项任务,所有 ClassLoaders 的根是系统 ClassLoader,它会以缺省方式装入类 -- 即,从本地文件...

    IKVM7.4.5196.0,将java的jar包转换为.dll控件,以使.NET可以使用

    解压ikvmbin ,并将%IKVM_HOME%\bin添加到path中。...类文件(.class)或包文件(.jar)  Java类或包文件的名字可以含有通配符(如*.class)。 参数----参数说明 -out:输出文件----指定输出文

    IKVM7.3.4830.0,将java的jar包转换为.dll控件,以使.NET可以使用

    解压ikvmbin ,并将%IKVM_HOME%\bin添加到path中。...类文件(.class)或包文件(.jar)  Java类或包文件的名字可以含有通配符(如*.class)。 参数----参数说明 -out:输出文件----指定输出文

    Android 中动态加载.jar的实现步骤

    首先第一个是 jar 文件的制作,Java 里面直接把 .class 文件打包到 .jar 文件里面就可以了,但是 Android 的 Dalvik VM 是不认 Java ...要动态加载其它类,可以用的 Class Loader 有: DexClassLoader,PathClassLoader

    java调用kettle所需jar包(包含oracle和mysqljar驱动).rar

    java调用kettle时需要的jar包合计,其中包括了可能会用到的Oracle和MySQL的驱动文件

    对jre包里的rt.jar精简

    注意这个jar有可能有些class文件没有加载进去(比如shutdown.calss等等),所以剩下的就是自己慢慢调了,你可以创建一个jre环境,执行命令jre\bin\java.exe -Dfile.encoding=utf-8 -jar mytest.jar 进行报错调试。...

    java转exe class转exe jar转exe工具

    1.选择【浏览JAR】可将jar包打成程序、选择【选择目录】可选择calss文件目录(文件夹下直接为主启动类(包含main函数的类)class文件),之后选择JRE版本,然后点击下一步 2.选择生成程序类型:控制台程序、窗口程序、...

    Android_HttpClient_jar包

    Step3:如果需要发送请求参数,则可调用HttpGet、HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,也可以调用setEntity(HttpEntity entity)方法来设置请求参数; Step4:...

    Eclipse的get set方法自动添加属性注释的jar包

    Eclipse版本Version: Neon.3 Release (4.6.3),修改了GetterSetterUtil.class之后的jar包,能自动添加getter和setter方法注释。

    GeoServer配置解决cors跨域问题的依赖jar包和配置说明.zip

    1、将cors-filter-2.4.jar和java-property-utils-1.9.1.jar,两个jar包文件放入geoserver目录下webapps\geoserver\web-inf\lib中。 2、打开geoserver目录下webapps\geoserver\web-inf中的web.xml 3、添加过滤器...

    解决java打包之后无法加载静态资源的问题SWTResourceManager.java源码

    这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成jar包后,获取图片的路径中有"xxx.jar!"这里面的内容是不能够被操作系统识别出来的,因此直接通过路径来获取文件是不...

    Java 动态加载jar和class文件实例解析

    主要介绍了Java 动态加载jar和class文件实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    mysql连接数据库打包为jar包所需

    1,用elicpse打包为jar包后转为exe经常出现数据库连接错误 2,直接把"mysql打包文件"文件夹的东西全部添加的jar包的有class文件的文件夹下面(解决步骤) 3,第二步只需要winrar即可

    tomcat跨域访问支持Jar包

    CORS支持需要用到两个jar文件,分别是cors-filter-1.7.jar和java-property-utils-1.9.1.jar。 把他们放到工程的lib中,然后在web.xml中添加: &lt; filter &gt; &lt; filter-name &gt; CORS &lt;/ filter-name &gt; &lt; filter-class...

    xUtils jar包3个版本

    android.txt 不要混淆xUtils中的注解类型,添加混淆配置:-keep class * extends java.lang.annotation.Annotation { *; } 对使用DbUtils模块持久化的实体类不要混淆,或者注解所有表和列名称@Table(name="xxx"),@...

Global site tag (gtag.js) - Google Analytics