是财政系统com组件,他们给了一个安装包和接口规范文档,文档中介绍通用方法Int CFSInterface(int iType,String strEnterprisercode,String strXml),其中前两个传入参数,strXml是传出参数。我安装组件后,在安装目录下有很多.dll文件。在注册表里面找到一个类CFSEInterface.clsInterface,我是要用java,调用此接口,请问有什么方法,能实现既有返回值又传出参数接口调用吗?最好有个例子...期待高手

解决方案 »

  1.   

    其实就两个问题1.java如何调用com组件
                  2.传出参数如何处理? 
      

  2.   

    两种思路:
    1.自己编写相应的JNI,哈哈。
    2.使用JCOM。(本人推荐)http://sourceforge.net/projects/jcom/下载JCOM,解压取出jcom.jar和jcom.dll两个文件。
    1、   将附件的jcom.jar复制到本地,并设置环境变量引用之(最简单快捷的办法就是将该jar包解压到自己的代码目录中)。 
    2、   该dll copy到JDK目录的bin目录下。 
    3、   查找需要调用的COM主件名称。注意,COM组件名称并不是dll文件的名称,可以到注册表中查询。
    4、   查找调用的COM的接口方法。(可以在Microsoft Visual Studio .NET 2003 中引用相应的DLL,在“对象浏览器”中就可以看到该组件的所有接口方法)
    5、   Java调用代码: 
    import jp.ne.so_net.ga2.no_ji.jcom.*; 
    public class ProcessXML { 
             public static void main(String[] args) { 
                       Process(); 
             }          public static String Process(){ 
                 ReleaseManager rm = new ReleaseManager(); 
                 try { 
                     IDispatch vbcom = new IDispatch(rm, "U8Distribute.iDistribute");
                     ObjeCT[] param = new Object[] { "XXXXX" }; 
                     String strRet = (String)vbcom.method( "Process", param ); 
                     System.out.println("return: "  + strRet); 
                 } catch ( Exception e ) { 
                     e.printStackTrace(); 
                 } finally { 
                     rm.release(); 
                 } 
                 return null; 
             } 

     
      

  3.   


    JNI不会写,请高手指点...