ikvm使用注意事项
最后更新日期 2014-01-24
环境:
[1]Eclipse [2]JDK 1.6.x [3]C# .NET Framework4
[3]ikvm-7.2.4630.5
正文
[1]在Eclipse中导出java项目时不要勾选lib节点(即使你选择导出lib下的所有jar包,你所依赖的jar包还是会找不到)
在调用ikvmc转DLL的时候再跟上依赖包,
比如jxl.jar等ikvmc -out:d:\temp\TestLog4jIKVM.dll D:\temp\TestLog4jIKVM.jar D:\temp\log4j-1.2.9.jar d:\temp\jxl.jar
这样你java项目的依赖包就能找到了。
[2]若你的java项目使用到了log4j.properties,只要这个文件在java项目的src路径下,导出src路径时自然也会导出,C#调用java程序
时也会找的到这个log4j.properties文件。
[3]你java项目若使用到了log4j.xml,必须把\ikvm-7.2.4630.5\bin目录下所有关于XML的DLL添加到C#项目的Reference里来,否则会抛出
System.IO.FileNotFoundException的异常。
[4]C# 调用 ikvmc生成的java DLL时提示“A first chance exception of type 'ClassNotFoundException' occurred in IKVM.Runtime.dll"
最后更新日期 2014-01-24
环境:
[1]Eclipse [2]JDK 1.6.x [3]C# .NET Framework4
[3]ikvm-7.2.4630.5
正文
[1]在Eclipse中导出java项目时不要勾选lib节点(即使你选择导出lib下的所有jar包,你所依赖的jar包还是会找不到)
在调用ikvmc转DLL的时候再跟上依赖包,
比如jxl.jar等ikvmc -out:d:\temp\TestLog4jIKVM.dll D:\temp\TestLog4jIKVM.jar D:\temp\log4j-1.2.9.jar d:\temp\jxl.jar
这样你java项目的依赖包就能找到了。
[2]若你的java项目使用到了log4j.properties,只要这个文件在java项目的src路径下,导出src路径时自然也会导出,C#调用java程序
时也会找的到这个log4j.properties文件。
[3]你java项目若使用到了log4j.xml,必须把\ikvm-7.2.4630.5\bin目录下所有关于XML的DLL添加到C#项目的Reference里来,否则会抛出
System.IO.FileNotFoundException的异常。
[4]C# 调用 ikvmc生成的java DLL时提示“A first chance exception of type 'ClassNotFoundException' occurred in IKVM.Runtime.dll"
若不影响程序运行可以忽略它。
[5]java中的Collections.sort函数,用ikvm转成dll后,是无法正常排序的(不会报错),需要另外编码实现List的排序功能。