public class Sys {
public static native String showHDSerial(); static {
String path = "";
File f = new File("lib/native");
try {
path = f.getAbsolutePath();
System.out.println(path);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.setProperty("java.library.path", path);//
System.loadLibrary("Sys");
} public static void main(String[] args) {
String a = showHDSerial(); System.out.println("mac:" + a); }
}这样也是取不到dll,请问是如如何加载dll呀?
解决方案 »
- 我做的JSP+Servlet程序,插入信息提交后出现空白页面,不知道是什么原因???
- hibernate 怎么使用原始的SQL 语句进行insert update delete 操作
- 问个小问题
- 彩票排列
- 如何将HashMap按照value值进行排序
- CVS:UPDATE 和Replace with->Latest from HEAD 有什么不同
- 请教java串口控制的简单问题
- 菜鸟一枚。现在自学完了S2SH框架。求S2SH框架项目视频教程~~~有的大哥发给小弟一份吧。在这里跪谢了
- 高手请进!!关于Hibernate加载blob字段的问题!在线等!谢谢!
- 事务的特性ACID(原子性一致性隔离性持久性)还有事务的隔离性和隔离级别有啥用啊
- java 分割字符串问题。 看了会大吉大利的今天
- 请教关于Hibernate中的clear()和flush()
import com.sun.jna.Library;
import com.sun.jna.Native;public interface HardInfo2Lib extends Library { public static final String DllFilename="PcHardInfo.dll";
public static final String DllFile_Md5="CC17B758569CA565738540F9197E6135";
HardInfo2Lib INSTANCE = (HardInfo2Lib) Native.loadLibrary("PcHardInfo",HardInfo2Lib.class);
String GetMachineUUID();
String GetCPUID();
String GetPriHddSerialNumber();
}此处dll放在Tomcat下
http://blog.csdn.net/zhangao0086/archive/2011/05/02/6384795.aspx
①、System.load(String filename);
从作为动态库的本地文件系统中以指定的文件名加载代码文件。文件名参数必须是完整的路径名(指的是绝对路径)。dll文件可以随便放到哪个目录下面,指定了绝对路径找到文件就OK了。filename指的就是加载的文件。
②、System.loadLibrary(String libname);
加载由 libname 参数指定的系统库。将库名映射到实际系统库的方法取决于系统,libname指的指定的动态库的库名。
用这个方法我是直接把dll文件放到System32下面的,自动去加载的。
public class Sys {
public static native String showHDSerial(); static { try {
System.load("E:/jsp/quality/WebRoot/WEB-INF/classes/net/hlj/util/Sys.dll"); // 注意 } catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
String a = showHDSerial(); System.out.println("mac:" + a); }
}这个文件放到src下好使,但是放到包里就不行了?为什么?