3

IKVM (バージョン: 7.0.4335.0) で JAR ファイルから DLL ファイルを作成する際に問題があります。

次のコマンドで JAR を開くと、JAR 自体を実行できます。

ikvm -jar MyTest1.jar

コンソールに System.out.print("test") の出力が表示されます。

ただし、次の方法でDLLに変換します。

ikvm MyTest1.jar

エラーが表示されます:

C:\Users\de\Desktop>ikvm MyTest1.jar
Exception in thread "main" java.lang.ClassNotFoundException: MyTest1.jar
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(AccessController.java:279
)
    at java.security.AccessController.doPrivileged(AccessController.java:520
)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:450)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:385)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:503)
    at IKVM.Internal.ClassLoaderWrapper.LoadClassImpl(Unknown Source)
    at IKVM.Internal.ClassLoaderWrapper.LoadClassByDottedNameFastImpl(Unknow
n Source)
    at IKVM.Internal.ClassLoaderWrapper.LoadClassByDottedName(Unknown Source
)
    at IKVM.NativeCode.java.lang.Class.forName0(Unknown Source)
    at java.lang.Class.forName(Class.java:361)

ドキュメンテーションIKVM Docによると、私はこれをしなければなりません:

ikvm が ClassNotFoundException を報告する場合は、CLASSPATH 環境変数が設定されているかどうかを確認してください。その場合は、CLASSPATH をクリアするか、現在のディレクトリを追加して、ikvm が現在のディレクトリでクラスを見つけられるようにしてください。

ただし、(システム環境) クラスパス変数は適切に設定されています。(CLASSPATH=.; / JAVA_HOME=C:\Program Files\Java\jdk1.6.0_21 / パス=%JAVA_HOME%\bin;)

更新:この投稿を使用して DLL ファイルをビルドできました。とにかく、上記の問題は残っており、これを修正するために何をする必要があるのか​​ 疑問に思っています.

手伝ってくれてありがとう。

4

1 に答える 1

16

dll を作成する場合は、ikvm ではなく ikvmc を使用する必要があります。これは、java と javac のようなものです。

于 2012-01-27T21:28:08.883 に答える