`

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);
        }
      }
    }
  }

}

分享到:
评论

相关推荐

    动态加载jar包

    在Java中,动态加载jar包的核心在于使用`java.lang.ClassLoader`类或其子类。ClassLoader是Java虚拟机(JVM)的一部分,负责将类的字节码加载到JVM中并转换为Class对象。默认情况下,JVM会使用系统类加载器来查找和...

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

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

    java 动态加载jar包

    动态加载jar包技术主要涉及Java的反射机制、类加载器和插件系统。下面我们将深入探讨这些知识点。 首先,了解Java的反射机制是理解动态加载的基础。Java反射API允许我们在运行时检查类、接口、字段和方法的信息,...

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

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

    JAVA 将class打包为jar

    ### JAVA将Class文件打包为JAR文件的详细步骤与注意事项 #### 标题与描述概述 在Java开发中,将多个Class文件打包成一个JAR(Java Archive)文件是一种常见的做法,这有助于简化项目的部署过程并提高代码的可管理性...

    动态加载jar包的实现

    在Java编程环境中,动态加载jar包是一项重要的技术,它允许我们无需重启服务器就能引入新的功能或更新已有的类。这在大型系统维护和迭代中尤为关键,因为它提高了系统的灵活性和可扩展性。以下是对"动态加载jar包的...

    java 类从哪个jar包加载的

    类加载器负责查找并加载类的字节码文件(.class文件),这些文件通常来自于JAR包。类加载的过程可以分为三个阶段:加载、验证、准备、解析和初始化。 1. **加载**:类加载器寻找并读取类的二进制数据,这个数据可能...

    修改jar包中的class文件

    当我们运行一个JAR文件时,Java虚拟机(JVM)会加载其中的class文件并执行其中的代码。 修改JAR文件中的class文件涉及以下几个步骤: 1. **解压JAR文件**:使用解压缩工具(如WinRAR、7-Zip或命令行的jar命令)将...

    eclipse编译.class所需jar包

    首先,我们来看标题中的核心知识点——"eclipse编译.class所需jar包"。在Eclipse中,编译Java源码(.java文件)为字节码(.class文件)是IDE的基本功能。Eclipse自带了Java编译器JDT(Java Development Tools),它...

    Java URLClassLoader动态加载jar包1

    然后,使用`Class.forName()`方法,指定了要加载的类全名(包括包名)"org.javaweb.url.Url",并传入`URLClassLoader`实例作为上下文类加载器,这样就可以确保这个类是由这个特定的`URLClassLoader`加载的。...

    JAVA动态加载JAR zip包

    总结来说,Java动态加载JAR或ZIP包是通过自定义类加载器实现的,它可以让我们在运行时按需加载外部库,提高系统的可扩展性和灵活性。这个过程涉及到类加载器的创建、文件的读取、类的解析和实例化等多个步骤,是一项...

    在jar包下找class文件

    - **依赖分析**:在理解项目依赖关系时,找出所有使用特定类的`jar`包,有助于优化构建过程。 - **代码迁移**:在将代码迁移到新的项目结构时,快速找出所有相关的类文件。 - **库更新**:检查新版本的库是否包含了...

    将class文件打包成jar文件

    将class文件打包成jar文件是Java开发中常见的需求,尤其在使用WebService的SOAP协议时,为了实现远程调用,往往需要将本地的类文件(.class)打包成jar包进行分发。本文将深入探讨这一过程,包括手动压缩和利用...

    Java加载。jar包

    ### Java加载.jar包详解 #### 一、Java 类加载机制概览 自 JDK 1.2 版本之后,Java 类加载机制发生了一个重要的变化,引入了一种名为**类加载委托**的概念。这一机制的核心思想在于,如果某个 `ClassLoader` 无法...

    Java 动态加载jar文件示例

    使用自定义类加载器后,我们可以在程序运行时动态加载jar文件中的类。例如,如果我们有一个名为`com.example.Plugin`的插件类存在于jar文件中,可以这样加载: ```java String jarPath = "path_to_your_jar.jar"; ...

    jclasslib修改jar包里面的class文件包含jar

    在Java开发过程中,有时我们需要对已打包的JAR文件进行修改,例如修复错误、更新类或资源等。`jclasslib`是一款强大的反编译器和字节码查看器,它允许开发者查看并修改JAR文件中的`.class`文件。这篇文章将深入探讨...

    json的class类,jar包

    总之,JSON的class类和jar包为Java开发者提供了一种便捷的方式来处理JSON数据,它们是Java生态系统中不可或缺的部分,特别是在Web服务、RESTful API以及跨平台通信等领域。理解和熟练使用这些库能显著提高开发效率并...

    springboot+java类热加载

    `ClassUtil.java`可能包含了一些辅助方法,用于在运行时编译修改后的Java源码,然后由类加载器加载到JVM中。Java的`javac`工具或第三方库如Apache Ant或Maven的Compiler插件可以用于此目的。 **自动引用依赖**:在...

    如何生成jar包

    生成JAR包是Java项目打包的一种常见方式,它用于将多个.class文件及相关资源文件打包成一个文件,便于程序的分发和部署。JAR文件的全称是Java Archive,本质上是一个ZIP格式的压缩文件,包含了一个清单文件...

Global site tag (gtag.js) - Google Analytics