【问题标题】:What does IKVM actually need for a jar to run in C#?IKVM 在 C# 中运行 jar 实际需要什么?
【发布时间】:2013-05-31 02:51:56
【问题描述】:

我将 weka 用于 C#,并尝试使用 IKVM 将 weka.jar 移植到 c#-dll 中。 教程可以在here找到。

现在,这是我在 C# 程序的 bin 目录中得到的:

weka.dll --由IKVM生成

IKVM.OpenJDK.Core.dll -- 来自 IKVM 库

JVM.dll -- 来自 IKVM 库

并且 java/bin 在我的 PATH 变量中。

但是程序崩溃了

weka.core.Instances insts = new weka.core.Instances(new java.io.FileReader("iris.arff"));

错误在于初始化 java.io.File

我认为这是因为 C#/bin 中缺少一些 dll

我可以通过将每个与 IKVM 和 Java 相关的 dll 复制到 C#/bin 目录中来解决它。然而它是如此丑陋。

现在我的问题来了:Java ==IKVM==> C# 程序确实需要哪些运行时库?

更新

我将所有相关内容都复制到了 C#/bin 中,并且它工作正常。

但请相信我,我不想这样做。

【问题讨论】:

    标签: c# java ikvm


    【解决方案1】:

    如果没有您,您永远无法回答您的程序需要哪些 Java/IKVM 部分的问题。你是唯一知道你的程序的人。一个小程序需要大约 50% 的 IKVM dll。这是因为Java中的依赖非常大。

    最低要求是 IKVM.OpenJDK.Core.dll 和 IKVM.Runtime.dll。但我不会逐个添加 dll。否则我会逐步删除它。您可以使用 dll 文件名或 Ilspy 来查看您可能不需要哪个 dll。

    这里有一些很少使用的和使用它的。这可以给你一个提示:

    • IKVM.OpenJDK.Tools.dll - Java 编译器
    • *.exe - 不同的工具
    • IKVM.OpenJDK.Jdbc.dll - SQL 和数据库 API
    • IKVM.OpenJDK.Corba.dll - Corba
    • IKVM.OpenJDK.Beans.dll - 普通老 Beans
    • ikvm-native-win32-*.dll、JVM.dll、IKVM.Runtime.JNI.dll - 原生的东西,如果你的 Java 代码已经使用了一个 dll
    • IKVM.OpenJDK.Naming.dll - LDAP、DNS 等命名服务
    • IKVM.AWT.WinForms.dll、IKVM.OpenJDK.SwingAWT.dll - 图像、字体、GUI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2010-09-27
      • 1970-01-01
      相关资源
      最近更新 更多