如何在C#中创建并使用来自JAR文件的类实例?
可行的C#调用Java(支持操作类实例)方案
- Jni4Net桥接方案
这是目前成熟度较高的.NET与Java互操作库,不需要将JAR转成.DLL,直接在C#进程内启动JVM实例,自动生成Java类的.NET代理层,使用体验和调用C#原生类几乎完全一致:可以直接实例化Java声明的类、调用实例方法、读写实例属性,Java侧的复杂组件也不需要做适配改造,兼容性远优于IKVM。 - 进程内托管JVM+原生JNI调用
如果不想依赖第三方库,可以直接通过C#调用JVM的原生入口,在当前进程内托管JVM实例,通过标准JNI接口完成Java类加载、实例创建、方法调用等操作,灵活性最高,适配所有Java组件场景,仅需要自行编写少量JNI交互逻辑。 - 跨进程IPC方案(你当前使用的方案)
你目前采用的批处理调用JAR+XML做数据交互的方案属于跨进程IPC方案的一种,优势是Java和C#运行环境完全隔离,不存在组件兼容问题,只要数据交互的性能和延迟满足业务需求,完全可以作为长期方案使用,不需要额外改造。
你提到的「像调用原生代码一样调用Java代码」的说法确实成立,前两种方案都可以实现代码层面对Java实例的无差别调用,IDE也支持代码补全、类型校验等原生开发体验。
内容的提问来源于stack exchange,提问作者Maik Hasler
相关产品推荐
相关产品推荐

