2012-04-13 4 views
0

vb.netで、Apple(Autoingestion.class)によって作成されたJavaクラスを統合して販売記録を取得する必要があるプロジェクトを作成するように求められました。vb.netアプリケーションで使用する統合Javaクラス

私はstackoverflow上のいくつかの質問を見つけましたが、私の.netアプリケーションでこのJavaクラスを統合しようとすると、私には答えられませんでした。

例えば、this questionが本当に必要なようでしたが、このJavaクラスをコンパイルしようとすると(Java Decompilerを使用して最初に逆コンパイルしました)、通常はいくつかのエラーがスローされます。

私が必要とするのは、アプリケーションでこのクラスを使用してメソッドを呼び出すことです。 誰も忍者を使わずにこれを引き出す方法を知っていますか?

EDIT:ここここで、当該クラスが含まれているので、単に.NETから既存のJavaコードを実行することである(.NET -see上記のコメントのJavaコードを書き換える以外)decompiled code from Autoingestion.class

+0

受け入れた_answer_?の説明に従ってikvmを使用しましたか?デコンパイルについてはまったく言及していません。 – Oded

+0

Oded、私が受け取ったファイルはコンパイルされたJavaクラスなので、ファイル拡張子は.classです。 .jarを作成するには、コードを逆コンパイルして新しいJavaプロジェクトを作成し、最終的に.jarを作成してikvmに渡す必要がありました。 私が言及したように、逆コンパイルされたコードは実行されません。私はここにコードを掲載して、それを例示することができます。 また、コンパイルされたAutoingestion.classファイルから.jarを作成しようとしました.ikvmによって作成された.dllを統合すると、私の.netアプリケーションはこのDLLのメンバーにアクセスできませんでした。 – Hallaghan

+0

[jarコマンド](http://docs.oracle.com/javase/tutorial/deployment/jar/build.htm)は、ファイルおよび/またはディレクトリを入力として受け取り、Javaソース(javac)をコンパイルしません。 jarファイルにクラスを追加するためにクラスを逆コンパイル/再コンパイルする必要はありません。最後に、jarファイルはちょうど追加のメタデータコンテンツを含むzipファイルです。 – krock

答えて

2

最も簡単な解決策でありますmain method。すなわち、この仮定のJavaクラスのようなものは、(とJavaは、あなたのパス上にある)あなたの.Netアプリケーションの作業ディレクトリにあります。

Shell("java Autoingestion <options>") 

これはあなたが現在行うようなコマンドを使用して、元の機能を保持しています。

+0

Krock、あなたのソリューションのおかげで、私は答えとしてマークします。私は既に.netでdllを使用することができました。明らかに、私が間違っていたのは、メインメソッドの名前を別のものに変更してからikvmを再度使用しなければならないということでした。今回私はそれを働かせることができました。 ikvmの開発者への誇り、それは素晴らしいアプリです。 – Hallaghan

+0

私はAppleがそのファイルを更新するたびにdllを生成しなければならないという面倒を救うために、あなたのソリューションをお勧めしました。再度、感謝します。 – Hallaghan

関連する問題