`

java中dll文件的加载和卸载。

阅读更多

一、在java中加载ddl文件的方法:

System.load(dllPath); //dllPath为dll文件的绝对路径。 或者

System.loadLibrary(libname); //libname为dll文件名,该dll要放到类路径中。

 

二、在java中卸载dll文件的方法:

 

    private void unloadNativeLibs() {
        try {
            ClassLoader classLoader = this.getClass().getClassLoader();
            Field field = ClassLoader.class.getDeclaredField("nativeLibraries");
            field.setAccessible(true);
            Vector libs = (Vector) field.get(classLoader);
            Iterator it = libs.iterator();
            Object o;
            while (it.hasNext()) {
                o = it.next();
                Method finalize = o.getClass().getDeclaredMethod("finalize", new Class[0]);
                finalize.setAccessible(true);
                finalize.invoke(o, new Object[0]);
            }
        } catch (Exception ex) {
            log.error("卸载dll文件出错,需要重启服务器!", ex);
            throw new RuntimeException(ex);
        }
    }

 参考:http://www.diybl.com/course/3_program/java/javajs/2007910/71488.html

 

分享到:
评论
2 楼 lbs1026 2018-01-14  
您好,卸载后怎么再装上去呢?
1 楼 alvin198761 2012-01-09  
嗯,我看了源码,和你的思路一样,呵呵,但是 卸载了怎么再装上去呢??

相关推荐

    C#中加载和卸载DLL

    如题如题如题如题如题如题如题如题如题如题如题如题

    API监听Dll的加载/卸载消息

    本程序调用LdrRegisterDllNotification实现,详见MSDN:LdrUnregisterDllNotification 函数。本程序可以监控Dll的加载/卸载事件。例如本程序可以利用本程序实现反Dll注入。其他功能可自行拓展。

    C#中动态加载和卸载DLL

    C#也提供了实现动态卸载DLL的方法,通过AppDomain来实现。AppDomain是一个独立执行应用程序的环境,当AppDomain被卸载的时候,在该环境中的所有资源也将被回收。

    加载和卸载DLL插件

    ccrpregUtil可以方便对DLL插件进行加载卸载,不需要像一步一步在注册表中那么麻烦。

    DLL注入与卸载

    实现window系统下的DLL注入与卸载

    dll窗体的加载及卸载

    动态加载dll中的窗体到主窗口的任意地方,加载的dll窗口鼠标不受限制。 在主窗体任意卸载dll窗体。 在博览众家之长后制作,全部源代码分享,给初学者提供条捷径。在berlin下编译。

    易语言DLL自卸载

    易语言DLL自卸载源码,DLL自卸载,Hello,Dll入口函数,zsxz,取自身模块句柄,卸载自身_

    不用dll文件自动卸载注册

    windows平台的不用dll卸载注册表项。导入到系统即打开了自动卸载不用dll的功能。优化dll文件的注册状态。 可以提高系统的运行速度。

    WinCE驱动的动态加载和卸载.(含源码)

    WinCE驱动的动态加载和卸载,并附带了一个小程序,可以指定要加载或卸载的DLL。

    Dll Killer 1.0(卸载用户第三方dll模块)

    Dll Killer 1.0(卸载用户第三方dll模块),欢迎大家下载

    利用反射,动态加载DLL,卸载DLL

    反射的加载与卸载,适用于需要经常变换更新的地方。...代码里文件路径是编译的路径(需要替换为自己的存放路径),我是将DLL拷贝到EXE文件夹下测试的,在没有卸载完,拷贝覆盖不了,卸载后就可以覆盖了。

    JAVA取得exe、dll文件的版本号

    JAVA取得可执行程序、文件的版本号 JAVA取得exe、dll文件的版本号

    Dll文件加载器

    用来调试加载DLL文件

    远程注入DLL的检测与卸载方法研究

    远程注入DLL的检测与卸载方法研究

    Dll注入和卸载源码

    Dll注入和卸载,包括DLL动态库,DLL注入功能是完整的,卸载不份不完善,可以作为参考。

    java调用DLL文件

    JAVA使用JNative包调用DLL文件

    c#动态加载卸载DLL的方法

    c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法。在.net 中,加入了应用程序域的概念,应用程序域是可以卸载的。也就是说,如果需要对动态加载...

    dll加载卸载工具源码

    远程注入方式实现LoadLibrary,...附带遍历进程和模块dll功能。svchost等的系统进程不能遍历,没做处理。 用了破解的皮肤组件,360之类的软件可能会唧唧歪歪,不喜欢的可以自行修改代码和删除相关皮肤文件的调用。

    卸载远程进程中的DLL文件

    很多病毒木马被写成了DLL格式,以插入到系统其他正常进程中,实现无进程,难以删除的目的,该工具可以搜索所有进程中是否含有指定的DLL文件,如果发现则强行卸载,对手工查杀病毒木马有帮助,代码简单

    C#实现非托管资源DLL的装载与卸载

    C#实现非托管资源DLL的装载与卸载封装类。

Global site tag (gtag.js) - Google Analytics