有Java工具(称为Mallet) http://mallet.cs.umass.edu/download.php 我想在我的.NET项目中使用它。
首先,要将此工具转换为.NET库,我尝试使用Apache Ant在单个.jar文件中构建它。我已完成了与上面链接中的说明相对应的所有内容。
从Mercurial存储库下载Developer Release。
下载Apache Ant,安装JDK,设置JAVA_HOME var以使用Apache Ant。
使用Ant我已经构建了单个mallet.jar文件。
然后我想使用IKVMC将mallet.jar转换为.NET库。 在转换时,我收到了很多警告,例如:
Warning IKVMC0108: not a class file "cc/mallet/util/tests/TestPriorityQueue$1.cl
ass", including it as resource
(class format error "51.0")
尽管有这些警告,但还是创建了mallet.dll。但是当我尝试从我的.NET项目中引用它时,它看起来是“空的”。它没有任何类或命名空间。我不会忘记引用IKVM.OpenJDL.Core。
这是不寻常的,我在谷歌找不到同样的问题。
我认为这个问题出现在警告中。而且我从未与Ant合作过,而且我并不完全了解所有过程。
答案 0 :(得分:6)
Java 7引入了类格式版本51。
IKVM很可能还不支持该版本,并且您引用的文件名(cc/mallet/util/tests/TestPriorityQueue$1.class
)指向匿名内部类TestPriorityQueue
,当然需要图书馆工作正常。
我的建议:使用较旧的JDK或至少使用设置为-source
的{{1}}和-target
开关编译Mallet(以确保它的编译为Java 6)。
答案 1 :(得分:6)
IKVM的FYI v8.1(当前在RC中)支持Java 8:
http://weblog.ikvm.net/2015/08/26/IKVMNET81ReleaseCandidate0.aspx http://sourceforge.net/p/ikvm/mailman/message/34502991/