做一个棋类程序
界面用java写,引擎用c写
怎么能够使界面与exe引擎文件进行通信
听说是互相传递字符串,Java怎么接受exe文件传来的字符串,c又怎么接受Java传来的字符串
请高手指点

解决方案 »

  1.   

    在java中定义好native method,用C去实现这些native method
    需要注意的细节是:
    要注意unicode和gbk字符集之间的转换,否则中文串会出现乱码。
      

  2.   

    上面问题的一点补充:
    上面的程序中,引擎不是我写的,别人写好了,给了我一个exe文件,我现在做了一个界面,怎么把他们联系起来
      

  3.   

    Runtime的exec方法可以调用exe,然后得到一个Process从里面可以得到一个outputstream从里面可以读出exe放到控制台上的信息(如果有的话)。
      

  4.   

    谢谢4楼,Java读取C的输出解决了。
    剩下的问题是,Java怎么给exe文件传送字符串,c程序怎么接受?
      

  5.   

    学习
    只知道有jni,但是没用过
      

  6.   

    怎么没人能具体说说
    java.lang.Random是JNI的一部分吗?
    我觉得JNI是java和其他程序的代码之间通信,
    现在要求是java和一个c写得可执行程序通讯
    应该不太一样吧
      

  7.   

    JNI是什么,讲解下。我们团队开发时也经常混合编程,一般用C#做界面,c/c++做算法提供接口,比较多用的是DLL。
      

  8.   

     JNI是Java Native Interface的缩写,它的设计目的是:
      
      The standard Java class library may not support the platform-dependent features needed by your application.
      
      You may already have a library or application written in another programming language and you wish to make it accessible to Java applications
      
      You may want to implement a small portion of time-critical code in a lower-level programming language, such as assembly, and then have your Java application call these functions这是从网上搜的,我也没接触过,计划下一步研究一下
    到Google上搜些教程看看吧