java to dll;IKVM将百度云推送的java后台SDK转化为共C#调用的dll程序集报错,求解?

简单人生zero 2016-05-23 11:28:25
IKVM将Java转换为C#可以调用的dll程序集,使用方法:切换到IKVM的bin目录 ikvmc -target:javaCode.jar 生成:javaCode.dll
C#引用javaCode.dll IKVM.OpenJDK.Core.dll IKVM.Runtime.dll IKVM.Runtime.JNI.dll (后三个就在IKVM 目录下);
引用命名空间(就是java类的包名)调用即可以;没有调用第三方jar包的;c#可以调用成功;
这就是百度云推送的java sdk的工程目录 标出的是我写的方便调用的类和方法

用百度云推送的java后台SDK写了个简单的推送程序,想在.net环境下运行,不太想用调用tomcat服务的方式,看到了IKVM可以将java的jar包转为直接C#可以运行的dll库,自己写的测试代码(没有第三方jar包情况下) 转换为dll后在C#可以运行,但是百度云推送 引用了好多jar包:bccs-api-3.0.1.jar commons-beanutils-1.9.2.jar ezmorph-1.0.6.jar等等;把百度提供的代码包和自己编写的代码包转为jar包 再转为-dll 后,.net运行就出错了,这种多指向的转换快把我弄疯了
转换报错,一大溜错误信息:

的情况下.net运行,异常信息:
未处理 System.InvalidCastException
Message=无法将类型为“java.util.PropertyResourceBundle”的对象强制转换为类型“sun.util.resources.OpenListResourceBundle”。
...全文
607 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zhang_Yunan 2018-09-20
  • 打赏
  • 举报
回复
找到解决办法了:
参考如下网址:https://sourceforge.net/p/ikvm/bugs/296/

里面说,将ikvm-8.1.5717.0/bin文件夹下所有跟OpenJDK有关的dll,都拷贝到主程序bin/debug下面就可以了,
亲测可用。
Zhang_Yunan 2018-09-20
  • 打赏
  • 举报
回复
我也遇到同样的异常了。
ikvmc 转换jar为dll。
无法将类型为“java.util.PropertyResourceBundle”的对象强制转换为类型“sun.util.resources.OpenListResourceBundle”。
这是怎么回事,有大佬知道吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧