web-dev-qa-db-ja.com

C#で.jar JavaライブラリAPIを使用しますか?

私はエントリーレベルのプログラマーですので、あなたの反応を説明してください。

C#.netアプリケーションで.jarファイルとして指定されたJava AP​​Iを使用しようとしています。 Javaはあまり知りませんが、この.jarファイルは、実行しようとすると「メインクラスマニフェスト属性がありません」と表示されるので、これはライブラリを意味しますか?このJava AP​​Iには、ライブラリの使用方法を示す.Javaファイルも付属していますが、.jar内のコードは表示されません。

このサイトで この質問 を見つけました。答えの1つに、「簡単な方法でJavaクラスをjarファイルにパックし、C#でProcessクラスを使用して実行し、マップIOストリーム。」私はC#のProcessクラスにある程度精通していますが、C#.netプロジェクトでJavaライブラリを使用するためにそれを使用する方法を理解していません。

これは可能ですか?またはその答えは間違っていましたか?

もしそうなら、C#アプリで.jarライブラリを使用する方法を説明してください。

51
timmyg

IVKM.Netを使用して実行できます。 IVKM.NETには、ikvmcというアプリケーションが含まれています。このツールのドキュメントは次のとおりです。

http://www.ikvm.net/userguide/ikvmc.html

それを使用するには、JavaコードをJarにコンパイルします。

次に、ikvmcプログラムを実行します。

ikvmc myCode.jar

Jarにmain()関数が含まれている場合、CLRで実行できるexeに変換されます。それ以外の場合は、dllに変換されます。プロジェクトでdllを使用するには、Visual Studioで参照として追加し、Javaで利用できる同じAPIが.Netアプリケーションでアクセス可能になります。

また、ikvmcからIKVM.GNU.Classpath.dll dllを組み込み、アプリケーションで標準のJavaクラスライブラリを使用できます。

72
Stephen Curial

[〜#〜] ikvm [〜#〜] をご覧ください。ある程度の相互運用性を提供するツールがあります。 Java API)と言うとき、単に実行するのではなく、jarからいくつかの機能を呼び出したいと思います

6
Rad