IKVM 7.0 - 如何从JAR成功创建DLL文件

e-n*_*ure 2 dll ikvm jar

我在使用IKVM(版本:7.0.4335.0)从JAR文件创建DLL文件时遇到问题.

如果我用命令打开它,可以运行JAR本身:

ikvm -jar MyTest1.jar
Run Code Online (Sandbox Code Playgroud)

我可以在控制台中看到System.out.print("test")输出.

但是,使用以下命令将其转换为DLL:

ikvm MyTest1.jar
Run Code Online (Sandbox Code Playgroud)

给我错误:

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)
Run Code Online (Sandbox Code Playgroud)

根据文档IKVM Doc我必须这样做:

如果ikvm报告ClassNotFoundException,请检查是否已设置CLASSPATH环境变量.如果是这样,请尝试清除CLASSPATH或将当前目录添加到其中,以便ikvm可以在当前目录中找到该类.

但是(系统环境)classpath变量设置正确.(CLASSPATH =.;/JAVA_HOME = C:\ Program Files\Java\jdk1.6.0_21/Path =%JAVA_HOME%\ bin;)

更新:我可以在这里使用这篇文章构建DLL文件.无论如何,上面的问题仍然存在,我想知道我需要做些什么来解决这个问题.

感谢帮助.

Hor*_*ux7 14

如果你想创建一个DLL,那么你需要使用ikvmc而不是ikvm.这就像java和javac.

  • 如果这个答案对你有帮助,你应该接受它. (4认同)
  • 谢谢您的帮助。使用命令:ikvmc -out:MyJavaPlugin.dll MyTest2.jar 它工作了! (2认同)