具体要求:
用C++编写程序主要模块和应用,
但要用到Java写的一个通讯模块,
C++部分调用Java模块获得原始信息,
通过分析计算获得用户需要的数据。C++模块和Java模块可以是两个单独的应用程序,
也可以采用Java模块嵌入C++主程序,做为一个整体运行。现阶段只需要C++模块调用Java模块的接口获得数据,
不需要双向通讯,但以后可能需要,
所以最好能够提供双向通讯的方案。哪位给出类似应用的源代码,
200分相送,
能够以后提供技术咨询的,
后期可以给予实际报酬和邀请其加入我们的团队(全职、兼职都可)

解决方案 »

  1.   

    有什么别的要求吗,我可以给你现写一个,不过Java并不是很好用,因为它需要java虚拟机才能运行,不是每一台机子都装java虚拟机的
      

  2.   

    我也想知道啊
    先留一个Email吧:[email protected],记得给我一个例子。
      

  3.   

    http://www-900.ibm.com/developerWorks/cn/education/java/j-jni/tutorial/index.html这片文档已经写得很详细很详细了
      

  4.   

    我以前写过一些jni,其实很简单的
      

  5.   

    用JNI
    JAVApublic class Sample2
    {
       public static int intMethod(int n) {
           return n*n;
       }   public static boolean booleanMethod(boolean bool) {
            return !bool;
       }
    }
    C++ #include <jni.h>
     
     #ifdef _WIN32
     #define PATH_SEPARATOR ';'
     #else
     #define PATH_SEPARATOR ':'
     #endif
     
     int main()
     {
      JavaVMOption options[1];
      JNIEnv *env;
      JavaVM *jvm;
      JavaVMInitArgs vm_args;
      long status;
      jclass cls;
      jmethodID mid;
      jint square;
      jboolean not;   options[0].optionString = "-Djava.class.path=.";
      memset(&vm_args, 0, sizeof(vm_args));
      vm_args.version = JNI_VERSION_1_2;
      vm_args.nOptions = 1;
      vm_args.options = options;
      status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);   if (status != JNI_ERR)
       {
        cls = (*env)->FindClass(env, "Sample2");
        if(cls !=0)
         {   mid = (*env)->GetStaticMethodID(env, cls, "intMethod", "(I)I");
            if(mid !=0)
            {  square = (*env)->CallStaticIntMethod(env, cls, mid, 5);
           printf("Result of intMethod: %d\n", square);
            }         mid = (*env)->GetStaticMethodID(env, cls, "booleanMethod", "(Z)Z");
            if(mid !=0)
            {  not = (*env)->CallStaticBooleanMethod(env, cls, mid, 1);
           printf("Result of booleanMethod: %d\n", not);
            }
         }     (*jvm)->DestroyJavaVM(jvm);
        return 0;
       }
      else
        return -1;
     }
    你不会在做彩信吧?? :-)
      

  6.   

    如果要用到双向通讯,那么可以把其中一个的输出使用SOCKET或者IP包发给另外一个接收。要么就通过文件、数据库。大概也就只能用这几种方法了。
      

  7.   

    Anyone can solve this problem?