【问题标题】:Calling .net dll in java app which is going to run on linux box?在将在 linux 机器上运行的 java 应用程序中调用 .net dll?
【发布时间】:2019-01-16 13:21:42
【问题描述】:

我正在寻找在 Java 应用程序中调用 .net dll 的开源选项,该应用程序将在 linux 机器上部署和运行。我在互联网上搜索并发现以下选项可能是相关的(忽略直接 JNI 选项,因为它需要 Visual C++ 知识并且我的 .net dll 具有非常复杂的实现):
a) JNA(Java 本地调用)
b) JNI4NET
c) IKVM

重要的是,我无法在 .net 源代码中进行任何修改并重新生成 .dll。我必须按原样使用它。

有什么建议可以简要介绍每个选项的限制和优势吗?或者是否有任何其他简单且强大的开源框架可供使用?我是否需要在 linux 机器上强制安装 WINE 或 MONO 等模拟器以支持 .net dll 或有解决方法?

【问题讨论】:

  • 我认为这根本不可能!在linux中使用dll? dll 在 linux 中不被认为是原生的。

标签: java .net linux


【解决方案1】:

使用IKVM.NET

它弥合了 mono 和 java 之间的差距,以实现轻松的互操作性,例如:

import cli.System.IO.*;

public class ShowDir{

   public static void main(String[] args){
       String[] files = Directory.GetFiles("."); //.NET System.IO
       for(String file : files){
           System.out.println(file);
       }
   }
}

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多