今天开发短信的业务,但是对一个dll的文件的加载,困扰我很长时间,虽然最中解决啦,但是觉得这样不是很好。
dll有两类:(1)Java所依赖的dll和,(2)dll所依赖的dll。正是由于第(2)种dll的存在,才导致了java中加载dll的复杂性大大增加,许多说法都是这样的。
其次,Java中加载dll的方式也有两种:(1)通过调用System.loadLibrary(String filename)和,(2)通过调用System.load(String filename)方法。其底层都是通过使用ClassLoader中的loadLibrary(Class fromClass, String name, boolean isAbsolute)方法来实现的,区别仅在于(1)中的filename必须是绝对路径,(2)中的filename只能是dll名,不允许包含文件夹。
再者,Eclipse是一个相当强大的平台,其提供的BundleClassLoader的强大是一个很重要的原因,对于dll的加载也有自己一套很别致的做法,值得我们采纳。
不过我对上面的都没有成功,最后我自己想啦一个办法,测试一下通过,就是将我们的dll文件的路径给啦系统的路径。
dll有两类:(1)Java所依赖的dll和,(2)dll所依赖的dll。正是由于第(2)种dll的存在,才导致了java中加载dll的复杂性大大增加,许多说法都是这样的。
其次,Java中加载dll的方式也有两种:(1)通过调用System.loadLibrary(String filename)和,(2)通过调用System.load(String filename)方法。其底层都是通过使用ClassLoader中的loadLibrary(Class fromClass, String name, boolean isAbsolute)方法来实现的,区别仅在于(1)中的filename必须是绝对路径,(2)中的filename只能是dll名,不允许包含文件夹。
再者,Eclipse是一个相当强大的平台,其提供的BundleClassLoader的强大是一个很重要的原因,对于dll的加载也有自己一套很别致的做法,值得我们采纳。
不过我对上面的都没有成功,最后我自己想啦一个办法,测试一下通过,就是将我们的dll文件的路径给啦系统的路径。