6

.NETプロジェクトで使用したいJavaツール(Malletと呼ばれます) http://mallet.cs.umass.edu/download.phpがあります。

このツールを最初に.NETライブラリに変換するために、ApacheAntを使用して単一の.jarファイルでツールをビルドしようとしました。上記のリンクの指示に対応するすべてを実行しました。

  1. Mercurialリポジトリから開発者リリースをダウンロードします。

  2. Apache Antをダウンロードし、JDKをインストールし、ApacheAntを使用するようにJAVA_HOME変数を設定します。

  3. 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を使ったことがなく、すべてのプロセスを正確に理解しているわけではありません。

4

2 に答える 2

7

クラス形式バージョン 51 は、Java 7 で導入されました。

IKVM はそのバージョンをまだサポートしていない可能性が高く、引用したファイル名 ( )は、ライブラリが正しく機能するために必要な匿名cc/mallet/util/tests/TestPriorityQueue$1.classの内部クラスを指しています。TestPriorityQueue

私の提案: 古い JDK を使用するか、少なくとも-sourceand-targetに設定されたスイッチを使用してMallet をコンパイル6します (Java 6 用にコンパイルされるようにするため)。

于 2011-10-24T12:01:29.293 に答える
6

参考までに、IKVM の v8.1 (現在は RC) は Java 8 をサポートしています。

http://weblog.ikvm.net/2015/08/26/IKVMNET81ReleaseCandidate0.aspx http://sourceforge.net/p/ikvm/mailman/message/34502991/

于 2015-12-23T21:40:28.033 に答える