`

Jar包转成Dll的方式(带嵌套的jar也能做)

    博客分类:
  • ikvm
 
阅读更多

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

  

分享到:
评论

相关推荐

    fastjson下载包

    标题中的“fastjson下载包”指的是FastJson的源码包或者预编译的JAR文件,通常包含了库的所有类和资源,可供开发者在项目中直接引用。 【在Android开发中的应用】 FastJson因其轻量级和高效的特性,尤其受到...

    源代码

    源代码是可读性强的人类语言形式,它在被编译或解释之前不能直接被计算机执行。理解源代码有助于我们深入学习软件开发的过程和原理。 在给定的压缩包文件中,我们可以看到一些与Java相关的类文件(.class)以及一些...

    NETJson全版本资源包

    这个资源包包含了从.NET 2.0到.NET 4.5,以及Portable和WinRT等不同平台的支持,确保了在各种.NET环境中都能进行有效的JSON数据处理。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁...

    htmlparser2.0

    HTMLParser2与Apache HttpClient.jar结合使用时,可以构成一个高效的网页抓取和分析解决方案。 在网页分析领域,HTMLParser2.0提供了以下几个核心功能: 1. **解析器接口**:HTMLParser2.0提供了一个简洁的API,...

    java源码包2

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    java源码包3

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    java源码包4

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    java源码包---java 源码 大量 实例

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    java读取注册表工具.zip

    本项目"java读取注册表工具.zip"提供了一个纯Java解决方案,无需依赖额外的jar包或dll文件。 在Java中读取注册表的关键在于使用Java的`java.lang.Runtime`类和`java.lang.ProcessBuilder`类。这些类允许Java程序...

    2011新版软件工程自学笔记.pdf

    - Component(组件)通常指的是软件系统中的一个模块,可以是一个jar包或DLL文件。 - Artifact(工件)是软件开发过程中产生的产品,比如文档、源代码、编译后的程序等。 - Node(节点)在UML图中可以代表一个...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

Global site tag (gtag.js) - Google Analytics