博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jar包转成Dll的方式(带嵌套的jar也能做) (转)
阅读量:7060 次
发布时间:2019-06-28

本文共 918 字,大约阅读时间需要 3 分钟。

 

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

 

转载于:https://www.cnblogs.com/softidea/p/4271291.html

你可能感兴趣的文章
Table显示滚动条
查看>>
Java基础第三天_数组
查看>>
PHP 中文汉字转换成拼音函数
查看>>
MySQL备份需要考虑的问题
查看>>
python基础(1)
查看>>
关于php7.0下Sqli-labs搭建的小问题
查看>>
股价飙升20%市值增长100亿,《纸牌屋》之父Netflix凭什么比他的竞争者要强12倍?...
查看>>
决心书
查看>>
SylixOS调试与性能分析技术--内存泄漏检测
查看>>
shell训练营Day15
查看>>
MySQL常用语句命令
查看>>
关于字符串的一些操作
查看>>
bootstrap-导航(垂直堆叠带分隔线的导航)
查看>>
安装tomcat-7.0.61图文
查看>>
游戏程序员的学习指南(必看)(二)
查看>>
手把手教你如何建立自己的Linux系统(LFS速成手册)
查看>>
初识 sqlite 与 content provider 学习笔记
查看>>
java--ftp的断点上传和断点下载
查看>>
11.SSH整合
查看>>
PowerShell记录脚本运行过程
查看>>