小奋斗 - 轻松学习从此开始!
IT小奋斗群 QQ群:62017228

Java自定义ClassLoader启用应用程序功能

基于Java ClassLoader的双亲委托机制,通过自定义ClassLoader类,动态加载应用程序运行时所需要的类库(jar或zip),然后通过自定义ClassLoader反射调用应用程序启动方法,进而实现启用应用程序。

开发环境及开发目标说明:

开发目标:在程序员实际开发过程中,发布一些小应用,小工具,经常需要编写启动脚本等,为减少程序员的重复劳动,提高中作效率,特此编写。

开发环境:JDK1.5 + Eclipse4.X

发布类型:zip启动工程

源码类型:启动jar包中含有源码

运行环境:支持windows、Liunx等平台(其他平台未测试)


开发功能说明:

1111.png

1、操作系统通过Java命令启动java虚拟机。

2、java虚拟机加载类库,解析java启动参数。

3、根据java启动参数,调用自定义ClassLoader加载应用程序类库。

4、根据启动参数,调用自定义ClassLoader启动。

使用技术说明:

1、Java的ClassLoader默认是双亲委托机制,JDK默认提供了3种ClassLoader,即Bootstrp loader,ExtClassLoader和AppClassLoader,也就是说,JVM启动时,逐级去加载Java类。

2、通用Java API的URLClassLoader类,实现自定义ClassLoader加载jar或者zip。

3、编写对应操作系统启动脚本,指定Java启动参数和应用程序启动类和启动方法。


功能案例说明:

1、编写HelloWorld.java。

package com.what21;

public class HelloWhat21 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // 打印信息
        System.out.println("hello what21 ...");
        // 当前线程休眠30秒
        try {
            Thread.sleep(30*1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

2、将类打包成jar,hello-what21.jar,放入到lib目录下。


3、修改启动脚本,指定启动类。

set LAUNCH_CLASS="com.what21.HelloWhat21.main"

4、测试成功

我来评几句
登录后评论

已发表评论数(0)