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

时间:2013-05-30 12:36:00

标签: c# java ikvm

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

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

weka.dll - 由IKVM生成

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

JVM.dll - 来自IKVM libs

和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相关的所有内容,但它确实有效。

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

1 个答案:

答案 0 :(得分:1)

从来没有你可以回答你的程序需要Java / IKVM的哪些部分。您是唯一了解您的计划的人。一个小程序需要大约50%的IKVM dll。这是因为Java中的依赖项非常大。

最小的是IKVM.OpenJDK.Core.dll和IKVM.Runtime.dll。但是我不会用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 - Plain Old 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
相关问题