最简单的方法就是将你的JAVA程序移植到J#下
另外.你可用JNI,用C调用JVM来执行你的CLASS,再将该C封装成DLL

解决方案 »

  1.   

    可不可以直接用JAVA生成DLL文件??
    我想做的是我生成的东西,不管是JAVA还是.net都可以使用的,这样就可以实现控件共享!如果不用C调用JVM,还有其它办法吗?请教楼上!
      

  2.   

    好像不可以
    SUN 的JAVA 和 M$的.NET本来就是一对冤家
      

  3.   

    大哥,你有JNI的电子书吗?可不可以传我一份!怎么就你一个人回答?哪我不是这100分就给你一个了?
      

  4.   

    JNI
    在DLL中LoadLibrary("jvm.dll");
      

  5.   

    ms和java可以互相操作
    已确认
      

  6.   

    jni的资料:
    http://java.sun.com/docs/books/tutorial/native1.1/
    中文资料就少了(因为很少有人用)<<Think In Java>>的附A有部分介绍,你可参考一下
    <<Think In Java>>网上有很多,这里就可下:
    www.infoxa.com
      

  7.   

    楼上大哥:
        我看了一下JNI,可是没有看到怎魔生成.Dll文件的??请问能不能细说一下!
      

  8.   

    1.建TestDLL.java
    public class TestDLL
    {
      
     public static void testshow(String msg)
      {
        testshow0(msg);
      }
      private static native int  testshow0(String msg);  static
      {
        System.loadLibrary( "TestDLL" );
      }
       public static void main( String[] args )
       {
         testshow("Hello!");
       }
    }
    2. 编译成类
    javac TestDLL.java
    3.生成.h文件
    javah -jni TestDLL
    4.建TestDLL.c
    #include <windows.h>
    #include "TestDLL.h"
    JNIEXPORT jint JNICALL Java_TestDLL_testshow0
      (JNIEnv *env, jobject obj, jstring s)
    {
      const char* szStr = (*env)->GetStringUTFChars( env, s, 0 );
      MessageBox(NULL,szStr,"TestDLL",MB_OK);
      (*env)->ReleaseStringUTFChars( env, s, szStr );
    }
    5.生成DLL
    cl -Id:\j2sdk1.4.2_09\include -Id:\j2sdk1.4.2_09\include\win32 -LD TestDLL.c user32.lib
    6.测试结果
    java TestDLL
    你将会看到java调用windwos DLL的MessageBox所产生的Hello对话框
    环境:
      JDK+VC
      

  9.   

    这种方式,用java完全没有体会到java的用处,而且这样由于涉及到jni的应用,因此,很难进行移植。哎。如果可以的话,你直接写dll好了。
      

  10.   

    楼上大哥,我想的也是直接生成Dll,你有什么好的办法吗?
      

  11.   

    1. 自己写代码转换工具, 将java代码转换层c#代码. 然后编译
    2. 如果允许, 在c#中使用Socket等方法和java程序进行通信, 用数据交互
    3. Webservice, 实现过程调用.要java和.net共享程序空间好像不太可能, 即使使用一些中间的技术转换也不一定稳定.