如题, 急啊!  可不可以说得详细点,我是java初学者

解决方案 »

  1.   

    jcom.jar,jcom.dll
    实例代码如下
    import jp.ne.so_net.ga2.no_ji.jcom.*;
    import java.util.*;public class NativeTest {
      private ReleaseManager rm;
      private IDispatch cmbcdll;
      public NativeTest() {
        rm = new ReleaseManager();
        try {
          cmbcdll = new IDispatch(rm, "yourregisteddll");
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }
    //读取证书,若读取成功返回Base64编码的字符串,否则返回null
      public String readCert(String certpath) {
        Object[] param = new Object[] {
            certpath};
        String retcode = null;
        try {
          cmbcdll.method("readcert", param);
          retcode = (String) cmbcdll.get("cert");
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        return retcode;
      }
    //制作数字信封,若制作成功返回Base64编码的字符串,否则返回null
      public String EnvelopData(String srcstring, String bankcert, String usercert,
                                String password) {
        Object[] param = new Object[] {
            srcstring, bankcert, usercert, password};
        String retcode = null;
        try {
          cmbcdll.method("EnvelopData", param);
         if(((Integer)cmbcdll.get("retCode")).equals(new Integer(0))){
           retcode=(String)cmbcdll.get("EnveData");
         }
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        return retcode;
      }
      //商户端解密,若解密成功返回Base64编码的字符串,否则返回null
      public String DecryptData (String encryptstring,String bankcert,String usercert,String password){
        Object [] param=new Object[]{encryptstring,bankcert,usercert,password};
        String retcode=null;
        try{
          cmbcdll.method("DecryptData",param);
          if(((Integer)cmbcdll.get("retCode")).equals(new Integer(0))){
           retcode=(String)cmbcdll.get("DecrData");
         }    }catch(Exception e){
          e.printStackTrace();
        }
        return retcode;
      }
    }
      

  2.   

    1.首先的有.dll的.h文件既API说明
    2.写java代码你的方法应是调用本地方法的如:
     ...
    //包装本地方法的java方法
    void foo()
    {
         nativeFoo();
    }
    //声明本地方法的调用方法
    native void nativeFoo();
     ...
    3.编译上面的.java文件
    会生成.class文件
    4.用javah yourclasssname生成jni的头文件*.h
    5.建立一个c/c++的工程(DLL)实现你的头文件的方法
    6.编译后生成yourcppname.dll
    7.把yourcppname.dll考到classpath路径下在2.步的你的.java类中加入
    static
    {
       System.out.loadLibrary("yourcppname");
    }后重新编译
    8.执行重新编译后的.class