研究很好几天,终于成功了。因为写了一个Java的项目,现在要求要改写成C#版本的。但是其中用到了svnkit,svnkit是java平台的。改写成C#的话,要使用SharpSVN,但是SharpSVN的API文档真的很不专业。看来看去还是svnkit比较好。所以打算将一些操作(上传,下载,删除,移动,检索树)写好之后,转成dll。于是开始了研究。

  首先遇到的问题是:jar包之间有依赖的话,转成dll。在运行过程中会出现找不到类的错误。最终找到了解决办法:有两种办法。

  1.使用fatjar将他们统一一键打包(依赖包可以存在新建的lib文件夹中),再使用

ikvmc -target:library 打包好的fatjar文件路径

  来将jar包转成dll。

  在新建的C#工程中添加引用(添加转好的dll),直接使用打包好的函数就行。(就像使用库函数)

  2.第二种方法是这样的:

  我举个例子说明一下:一个类名为:GetUserName(),将其导出为jar(BeDependent.jar)。再写一个类命名为InvokeGetUserName(),并且在InvokeGetUserName()中调用了GetUserName()。将InvokeGetUserName打包成另一个jar(ToDependent.jar)。

  接下来:先将没有依赖的jar包转成dll,这里指的就是BeDependent.jar。

ikvmc -target:library BeDependent.jar的路径

  会生成BeDependent.dll,然后将两个jar包合成:

ikvmc -target:library -reference:BeDependent.dll的路径 ToDependent.jar的路径

  生成ToDependent.dll。在新建的C#项目中加载引用后,直接在程序中直接调用InvokeGetUserName()即可。

注:但是在我合成svnkit的jar们的时候,出现了问题。还没有解决。

http://www.cnblogs.com/wangjiyuan/p/jar2dll.html

最新文章

  1. MySql联接算法
  2. Spring注入中byType和byName的总结
  3. C#解决一个奇怪的,命名空间“XXX”中不存在类型或命名空间名称“xxx”的问题
  4. Android 写模块化代码注意事项
  5. 微信调试、API、AJAX的调试 SocketLog
  6. List集合基于某个字段排序
  7. mysql5.7密码问题
  8. Spring webapp - shutting down threads on Application stop
  9. AJAX(学习笔记一)
  10. IOS多线程(一)
  11. 代码文档生成工具-Doxygen生成CHM和RTF图文教程
  12. SQL:42601
  13. CSS十问
  14. 如何解决Mac无法读取外置硬盘问题?
  15. shiro缓存管理
  16. ssh转发代理:ssh-agent用法详解
  17. django2 用iframe标签完成 网页内嵌播放b站视频功能
  18. pthon自动化之路-编写登录接口
  19. 7.Spring MVC静态资源访问
  20. Halcon二维仿射变换实例探究

热门文章

  1. xp对opengl的支持问题
  2. js获取地址栏url以及获取url参数
  3. HDU 4720Naive and Silly Muggles热身赛2 1005题(分锐角钝角三角形讨论)
  4. 基于visual Studio2013解决C语言竞赛题之1018数组求和
  5. 经典系统windows xp sp3官方原版下载(附XP序列号)
  6. 用lisp来让计算机学会写作
  7. swift 有些语法还是不支持。
  8. 关于Get和Post
  9. form里两个submit按钮,在onsubmit中判断哪个被点
  10. Codeforces Round #311 (Div. 2)