研究很好几天,终于成功了。因为写了一个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们的时候,出现了问题。还没有解决。

  

最新文章

  1. BZOJ 4008 【HNOI2015】 亚瑟王
  2. c++ boost asio库初学习
  3. [ios学习笔记之视图、绘制和手势识别]
  4. Updatepanel 注册javascript 方法
  5. 查询数据库后台Block 的Sql存储过程
  6. VBS基础篇 - 内置函数
  7. Window.onLoad 和 DOMContentLoaded事件的先后顺序
  8. iOS:使用导航栏
  9. gui界面2048小游戏
  10. sae python安装第三方模块
  11. BZOJ 1266: [AHOI2006]上学路线route
  12. codeforces#439 D. Devu and his Brother (二分)
  13. 从零开始学习python:demo2.3
  14. linq之group by 的使用
  15. 关于element-ui日期选择器disabledDate使用心得
  16. 9.if/else/elif
  17. js实现表单项的全选、反选以及删除操作
  18. 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)
  19. Mac下安装SVN插件javaHL not available的解决方法
  20. [转]Newtonsoft JSON how to dynamically change the date format?

热门文章

  1. uva 10313 Pay the Price(完全背包)
  2. codility上的问题(26) Hydrogenium 2013
  3. IOS系统对fixed定位支持不好的解决方法
  4. 总线接口与计算机通信(二)SPI总线
  5. TTimerThread和TThreadedTimer(都是通过WaitForSingleObject和CreateEvent来实现的)
  6. delphi中左右翻转窗体(修改EXStyle)
  7. 性能测试之LoardRunner 自动关联
  8. ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
  9. HTML5 Canvas中9宫格的坑
  10. 基于visual Studio2013解决面试题之0202上下排