我正在使用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相关的所有内容,但它确实有效。
但请相信我,我不想这样做。
答案 0 :(得分:1)
从来没有你可以回答你的程序需要Java / IKVM的哪些部分。您是唯一了解您的计划的人。一个小程序需要大约50%的IKVM dll。这是因为Java中的依赖项非常大。
最小的是IKVM.OpenJDK.Core.dll和IKVM.Runtime.dll。但是我不会用dll添加dll。否则我会一步一步地删除它。您可以使用dll文件名或Ilspy来查看您可能不需要的DLL。
以下是一些使用稀有且使用它的一些。这可以给你一个提示: