一、在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
分享到:
相关推荐
如题如题如题如题如题如题如题如题如题如题如题如题
本程序调用LdrRegisterDllNotification实现,详见MSDN:LdrUnregisterDllNotification 函数。本程序可以监控Dll的加载/卸载事件。例如本程序可以利用本程序实现反Dll注入。其他功能可自行拓展。
C#也提供了实现动态卸载DLL的方法,通过AppDomain来实现。AppDomain是一个独立执行应用程序的环境,当AppDomain被卸载的时候,在该环境中的所有资源也将被回收。
ccrpregUtil可以方便对DLL插件进行加载卸载,不需要像一步一步在注册表中那么麻烦。
实现window系统下的DLL注入与卸载
动态加载dll中的窗体到主窗口的任意地方,加载的dll窗口鼠标不受限制。 在主窗体任意卸载dll窗体。 在博览众家之长后制作,全部源代码分享,给初学者提供条捷径。在berlin下编译。
易语言DLL自卸载源码,DLL自卸载,Hello,Dll入口函数,zsxz,取自身模块句柄,卸载自身_
windows平台的不用dll卸载注册表项。导入到系统即打开了自动卸载不用dll的功能。优化dll文件的注册状态。 可以提高系统的运行速度。
WinCE驱动的动态加载和卸载,并附带了一个小程序,可以指定要加载或卸载的DLL。
Dll Killer 1.0(卸载用户第三方dll模块),欢迎大家下载
反射的加载与卸载,适用于需要经常变换更新的地方。...代码里文件路径是编译的路径(需要替换为自己的存放路径),我是将DLL拷贝到EXE文件夹下测试的,在没有卸载完,拷贝覆盖不了,卸载后就可以覆盖了。
JAVA取得可执行程序、文件的版本号 JAVA取得exe、dll文件的版本号
用来调试加载DLL文件
远程注入DLL的检测与卸载方法研究
Dll注入和卸载,包括DLL动态库,DLL注入功能是完整的,卸载不份不完善,可以作为参考。
JAVA使用JNative包调用DLL文件
c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法。在.net 中,加入了应用程序域的概念,应用程序域是可以卸载的。也就是说,如果需要对动态加载...
远程注入方式实现LoadLibrary,...附带遍历进程和模块dll功能。svchost等的系统进程不能遍历,没做处理。 用了破解的皮肤组件,360之类的软件可能会唧唧歪歪,不喜欢的可以自行修改代码和删除相关皮肤文件的调用。
很多病毒木马被写成了DLL格式,以插入到系统其他正常进程中,实现无进程,难以删除的目的,该工具可以搜索所有进程中是否含有指定的DLL文件,如果发现则强行卸载,对手工查杀病毒木马有帮助,代码简单
C#实现非托管资源DLL的装载与卸载封装类。