永发信息网

通过ikvm工具把Java程序jar包生成dll以供C#程序调用,但是生成dll的过程出错,导致C#不能正常调用dll。

答案:1  悬赏:40  手机版
解决时间 2021-03-28 21:55
通过ikvm工具把Java程序jar包生成dll以供C#程序调用,但是生成dll的过程出错,导致C#不能正常调用dll。
最佳答案
这是因为这个jar包中的类引用了其他的jar包,看你的控制台信息是dom4j。你可能需要把dom4j也一起进行转换。追问您好,很感谢您的回答。dom4j是什么??第三方的jar包吗?我后来通过fat-jar工具把第三方的jar也导出来,一起生成dll,但是还是说缺少各种class文件。还是说我手动的上网找到这些jar包再一起生成呢,程序引用的第三方jar包太多了,我在程序里都找不到这些???追答dom4j 是java中的一个解析xml文件的第三方jar包,dom4j 好像也依赖了几个其他的jar包。估计你需要包所有的jar包全部转换成dll你的程序才能运行起来。追问真的非常感谢您。我把dom4j.jar生成dll,同样遇到了警告,我要把警告中出现的class依次找到相应的jar生成dll,再用来生成dom4j-1.6.1.dll吗??万一找到了相应的jar后生成dll时又是碰到同样缺少class的警告,又要重新再找吗?太恐怖了。我想把Java程序通过生成dll,被C#调用,Java程序中引用了第三方jar包,调用出错。我不知道怎么办,您对这方面熟悉吗?

追答所有缺少的class你都得找到并转换。java程序引用的第三方包都需要进行转换的.

感觉你这样做得不偿失,而且你的那个java程序不一定能全部转换成功。IKVM的初衷是在.net上直接运行java程序,转换只是一个附加功能而且不是能100%的对jar包进行转换,好像IKVM不支持java5以上的只支持到java1.4,现在还有用1.4进行编程的吗?几乎没有了吧,限制太大。

你的C#程序想调用java,你用webservice也比现在的这个转换方案要好。追问非常感谢您的回答。听了您的建议,我看了一些webService的相关内容,采用的是MyEclipse的AXis2插件发布,我学会了发布一个类,没有看到如何发布一个工程。我的Java程序有很多包和类,难道倒时候把每个类都发布上去吗,还是写一个类似完成Main()函数功能的类来被客户端调用就可以了???还有Axis2不支持List返回吗?我在客户端调用都是报出异常,只能返回数组??
追答不是把每个类都发布。具体发布的类需要看你需要调用的那些业务发放。只需要吧业务方法的实现类发布出来就是。
list类型webservice是可以返回的。cfx可以Axis2应该也可以,我做webservice一般用cfx感觉比Axis2简单。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
同学的可爱女友中的糖糖的身份
悬赏招聘是什么意思?靠谱吗?
再见了,贵阳作文
《红岩》主要讲了个什么故事
星星银元的感受怎么说啊
如果射出来的精液是冷的什么原因
只有古代中国有宫斗吗
男人总对你说我想你,想抱着你睡之类的话是什
大连兄弟海湾平均每天多少订单?
公历2017年10月8日2 点42分出生五行缺什么
智力题A,D,H接下来的是什么字母
下载了新版骑马与砍杀战团之后,原来的存档还
某工程队修一条路,12天共修780米,还剩下325
天天魔灵召唤多久可以玩好?
西洋情人节的前身是什么?
推荐资讯
机械表里的艾戈勒手表值得买吗?
国泰新点软件做弱电实施的怎么样
“用勤劳坚持 换春华秋实”是什么意思
大树为什么冬天要保暖的课题报告
人有很多面,你知我几分.,朋友他发这条说说什
Bisphenol-A的应用
中国黄金买的钻戒没有证书和发票能以旧换新吗
大神求教.我vc
找个陕北洛川的女孩好不好
应聘物业管理员面试一般都会问哪些问题
当年亩产13万斤粮是怎么种出来的
跟其他品牌比 闪迪这款32g内存卡最强大吗京东
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?