51Testing软件测试论坛

标题: RFT脚本中如何加载DLL? [打印本页]

作者: lancelang    时间: 2011-2-16 12:13
标题: RFT脚本中如何加载DLL?
因为想在测试脚本中查询数据库,所以需要加载数据库连接DLL,但运行测试脚本时报java.lang.UnsatisfiedLinkError异常。代码如下:
  1. public void testMain(Object[] args)
  2.         {
  3.         String ret = "";
  4.         IDNAAdapter clientNDA = new DNAService();
  5.         try
  6.         {
  7.             System.loadLibrary("QuoterJNI");
  8.             ret = clientNDA.getDiskCode();

  9.             System.out.println(ret);
  10.         }
  11.         catch (Throwable t)
  12.         {
  13.             t.printStackTrace();
  14.         }
  15.         }
复制代码
异常:java.lang.UnsatisfiedLinkError: com/huawei/unistar/cfg/quoter/dna/QuoterJNI.getHardDiskCode()Ljava/lang/String;

但直接写在main函数,用java程序的方式运行却不会报错:
  1. public static void main(String[] args)
  2.     {
  3.         String ret = "";
  4.         IDNAAdapter clientNDA = new DNAService();
  5.         try
  6.         {
  7.             System.loadLibrary("QuoterJNI");
  8.             ret = clientNDA.getDiskCode();

  9.             System.out.println(ret);
  10.         }
  11.         catch (Throwable t)
  12.         {
  13.             t.printStackTrace();
  14.         }

  15.     }
复制代码
请大虾们指点一下,谢谢!
作者: zm1015    时间: 2011-2-16 13:25
需要开发配合你的,用jni试试。
作者: lancelang    时间: 2011-2-16 14:46
回复 2# zm1015


    用的就是JNI啊。
作者: BlueSkyLoser    时间: 2011-3-3 16:53
看一下第一个文件是否java文件,可以把第二个文件写成一个方法,然后调用试试。
作者: franklies    时间: 2011-5-20 22:33
回复 1# lancelang


    JDBC连接数据库不行吗?
作者: dreamever    时间: 2011-5-21 20:35
本帖最后由 dreamever 于 2011-5-21 20:37 编辑

应该是加载的路径不同,检查一下目录吧。
作者: kou_dou    时间: 2011-5-23 18:39
用JNI的话要注意.dll文件存放的位置,这个位置在头文件里有可能是写死的
作者: Rockets    时间: 2011-5-26 18:09
Leaning....




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2