IKVM 7.0 - как успешно создать файл DLL из JAR - PullRequest
2 голосов
/ 26 января 2012

У меня проблема с созданием файла DLL из файла JAR с помощью IKVM (версия: 7.0.4335.0).

Сам 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 (системная среда) установлена ​​правильно.(CLASSPATH = .; / JAVA_HOME = C: \ Program Files \ Java \ jdk1.6.0_21 / Path =% JAVA_HOME% \ bin;)

Обновление: я просто мог создать файл DLL, используя this пост здесь.В любом случае, вышеуказанная проблема остается, и мне интересно, что мне нужно сделать, чтобы это исправить.

Спасибо за помощь.

1 Ответ

14 голосов
/ 28 января 2012

Если вы хотите создать dll, вам нужно использовать ikvmc, а не ikvm.Это как java и javac.

...