不好意思,上面代码写反了:
点击一个按钮,调用动态库方法程序如下:
          gxSys hw = new gxSys();
          String para = "jcsj"; //软件名称
         // loginstring = hw.getDBUserPW(para);
          String a=hw.getDBUserPW(para);
          System.out.println(a);
          jTextField5.setText(a);          String b = hw.getDBConnectString(true);
          jTextField6.setText(b);
          //ipstring = hw.getDBConnectString(true);
          System.out.println(b);调用动态库的原程序:gxSys.java如下package fulltext;import java.io.*;
import java.util.*;public class gxSys
{
   /**
   * Static initializer - loads the native
   * method library
   */
   static {
      System.loadLibrary("gxSys");
   }
   public native String getDBUserPW(String software);
   public native String getDBConnectString(boolean isBde);
}

解决方案 »

  1.   

    呵呵,我以前也碰到过这个问题,有时候很奇怪,就是不行,我是把dll放到了tomcat的bin目录下了,你可以试试
      

  2.   

    谢谢楼上的大哥,我是调用VC的动态库的方法,JAVA中不能直接调,必须再自己写一个中间动态库,我不是用c/c++写的,是用DELPHI写的,是不是这个原因啊?一般建议都是用C/C++写啊,
      

  3.   

    我的是用vc写的,这是我的调用动态库的文件:
    package mis.connectWiz;
    public class loadLib
    {
      public native String GetActTagName( String text);
      public native boolean ConnectMMI();
      public native void DisConnectMMI();
      public native String GetAppPath();
      public static void main( String args[] )
       {     
       }
      static
      {
       System.loadLibrary("ConnectWiz");
      }
    }
      

  4.   

    我把包放在tomcat下了,还是没用
      

  5.   

    delphi写的动态链接库和VC写的好象有点不同,以前我也碰到过,DELPHI写的链接库不能被VC调用,不如改用VC重写一个试试。
      

  6.   

    莫名其妙,用Delphi写的动态库你怎么符合JNI的规范?当然只能用C或C++来写了。
      

  7.   

    楼上的,怎么不可以,我的意思说就是JB中有package的概念,所以不可以调用,但如果程序不用JB开发,也就是没有package,测试可以成功的,我同事的程序就是这样,但用JB开发的程序就是不行,应该有包的概念,在包中dll无法被调用,