打开一个程序的安装目录,在这里面可以看到一些dll的一些文件。如果在它的上面双击的话会在它的旁边提示:如果是想要查看它可以下载安装一个叫exescope的自定义应用软件的工具。
右边有一个更多,点击一下“更多”,可以看到它的默认安装路径,如果不需要更改的话,它就会默认的安装到c盘的程序文件夹中。
点击安装之后,在它d出的面板中有一个自动汉化的说明,我们点击“已阅”。接着在它的安装过程中会出现一个安装类型,可以根据需要选择一个安装类型,这里就选择它默认的“典型安装”,然后点击:下一步。当安装到汉化的安装目录的时候它会提示,如果是不想把它安装到默认位置的话,可以在点击浏览选择一个安装的文件位置。
第一步 建立一个监听类建立监听类的作用是在应用中间件启动时自动执行加载程序。
1)创建一个类实现ServletContextListener 接口
2)实现contextInitialized方法
3)在项目的web.xml 文件中配置此监听类
第二步 将dll文件所在的路径添加到系统环境java.library.path 中
添加过程需要使用到反射机制来进行,不能使用System.setProperty()进行设置,设置了也无效。直接看代码:
private void addDirToPath(String s){try {//获取系统path变量对象Field field=ClassLoader.class.getDeclaredField("sys_paths")//设置此变量对象可访问 field.setAccessible(true)//获取此变量对象的值 String[] path=(String[])field.get(null)//创建字符串数组,在原来的数组长度上增加一个,用于存放增加的目录String[] tem=new String[path.length+1]//将原来的path变量复制到tem中 System.arraycopy(path,0,tem,0,path.length)//将增加的目录存入新的变量数组中 tem[path.length]=s//将增加目录后的数组赋给path变量对象field.set(null,tem)} catch (Exception e) {e.printStackTrace()}}
第三步 加载dll文件
接下来就可以写上下文初始化的方法了:
public void contextInitialized(ServletContextEvent arg0) {//获取存放dll文件的绝对路径(假设将dll文件放在系统根目录下的WEB-INF文件夹中)String path=arg0.getServletContext().getRealPath("WEB-INF")//将此目录添加到系统环境变量中 addDirToPath(path)//加载相应的dll文件,注意要将'\'替换为'/' System.load(path.replaceAll("\\\\","/")+"/XXXX.dll")}
第四步 重启启动应用中间件(Tomcat|Weblogic)
至此就可以在你的java程序中使用dll文件的方法了。
我说的方法有两个优点,第一、简单(与写程序相比,这简单多了),第二、灵活(我说的这两个方法可以随时跟据需要修改,但程序不行,你需要重写编译后才能用。)第一个方法(如果不想让别人看到命令行,就加入echooff):1、先新建一个文件夹,把你要用的所有DLL文件放入这个文件侠。
2、用记事本输入以下格式命令:
copy
XXX.dll
c:\windows\system32\XXX.dll(以下方法是把一个XXX.dll的文件复制到c:\windows\system32\)
3、每行一条命令(太多的话,可以新建文件夹分类后,用*号代替文件名来 *** 作),保存文件为"setup.bat"
(保存时注意加上英文双引号),放入你新建存放DLL文件的文件夹中。
第二种方法:
把你所要用的DLL文件压缩到一个WIINRAR包里(压缩时注意设置解压路径),这样解压后,就会在指定目录里。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)