gpt4 book ai didi

c# - IKVM 实际上需要什么才能让 jar 在 C# 中运行?

转载 作者:行者123 更新时间:2023-11-30 11:32:09 24 4
gpt4 key购买 nike

我正在为 C# 使用 weka,并尝试使用 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 中,它起作用了。

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

最佳答案

您永远无法回答您的程序需要 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

关于c# - IKVM 实际上需要什么才能让 jar 在 C# 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com