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

 

研究很好几天,终于成功了。因为写了一个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

 

时间: 2024-10-29 03:17:07

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

jar-为什么要将java程序JAR包打包成.EXE,作用是什么

问题描述 为什么要将java程序JAR包打包成.EXE,作用是什么 如题.jar包不是已经能运行了吗,为何还要打包成.EXE呢,求真解,意义何在? 解决方案 JAR包不能单独运行的,它只是将一些函数封装下,提供给其它工程使用,要依托java.EXE是可以单独运行的,不用依托java 解决方案二: Java程序打包成Jar包Java程序打包成jar包Java程序打包成jar包 解决方案三: http://blog.chinaunix.net/uid-26153556-id-3042913.html

android-用fatjar打包的Android项目(有调用第三方jar包),调用时找不到第三方jar包的方法

问题描述 用fatjar打包的Android项目(有调用第三方jar包),调用时找不到第三方jar包的方法 用fatjar打包的Android项目(有调用第三方jar包),调用里面的方法时找不到第三方jar包的方法,这是什么问题呢?下面是报的错误,在网上找了很多方法也没有解决: 解决方案 Android项目打第三方jar包

Spring Boot由jar包转成war包

spring boot 默认是以jar包形式启动web程序,在新建spring boot项目时候可以选择war包的启动方式.   建议在开发的时候建立以jar包启动的web项目,启动效率更快,此时如果想发布成war包形式部署,做如下操作: 1.修改pom.xml 将 Xml代码   <packaging>jar</packaging>     修改成 Xml代码   <packaging>war</packaging>     2.新增如下到pom.xml文

jar包-导入项目时出现感叹号,提示缺少jar

问题描述 导入项目时出现感叹号,提示缺少jar 我导入一个Java项目时出现的,请各位师傅帮我看看,有什么解决方法,谢谢 本人小白一枚 解决方案 缺哪个包就找到哪个包,然后导进去,或者下载下来导入. 解决方案二: 缺第三方库,哪里弄来的代码去哪里找 解决方案三: 缺少什么jar包就下载哪个即可.可以使用这个网站http://findjar.com/index.x寻找需要的jar包. 解决方案四: 直接搜jar包的名字,不出意外应该是可以搜到的... 解决方案五: 缺哪个包就找到哪个包,然后导进去

ikvmc将jar包转化为dll时出现原java引用的jar找不到的情况

问题描述 虽然是一个java的编译问题,但我想,这东东也是给C#调用的,估计有人使用到过,特来拜访各位,求解答! 解决方案 解决方案二:你好,我也遇到类似的问题,想请问下您怎么解决的后来?解决方案三:请问现在怎么解决的啊..我生成的DLL在C#中调用不了啊!using的时候就会出现问题!

可运行jar包的几种打包/部署方式

java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含main入口方法),另一类是可直接运行的jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接运行,通常有几下三种方式: 动工之前,先搭一个项目架子便于后面分析: 项目结构图:  这是一个gradle项目(当然,也可以换成ant项目或maven项目,这不重要),里面有二个模块,my-jar的DemoApp里提供了main入口方法,通常一个可运行的java项目,都会依赖其它一些jar包,所以另

如何使用ant调用WebSphere的编译器将jsp编译成jar包?

问题描述 我们现有的项目是运行在tomcat5下,jsp是通过使用tomcat提供的org.apache.jasper.JspC编译工具将JSP页面的预编译.把所有JSP编译后得到的.class打包成一个xxx.jar包,放在我们应用的lib中.然后在web.xml中分别设置为servlet,再映射到某个xxx.jsp的URL上.build.xml文件如下:<projectname="WebappPrecompilation"default="all"base

Intellij IDEA 添加jar包的三种方式

intellij很好用但是对于用习惯了eclipse的童鞋来说有些不习惯,下面是intellij导入jar包的几种方法. Intellij IDEA 添加jar包的三种方式   一.直接复制:(不推荐) 方法:直接将硬盘上的jar包复制粘贴到项目的lib目录下即可. 注意: 1.对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错 2.对于在idea中创建的项目,该方式添加jar包,编译不报错,但是打开Structure会有"...jar ... is mis

Android 自定义组件成JAR包的实现方法_Android

Android 自定义组件成JAR包的实现方法,这里对自己实现的Android View 组件进行JAR 包的处理.             在项目开发过程中,我们难免会用到自己去制作自定义的VIEW控件,之后我们别的项目如果需要的话就直接将其复制到对应的项目中使用,虽说这么做是一个解决问题的方法,但毕竟不是很好. 原因是,当我们项目积累越来越多,会发现自定义的控件越来越多,而且这些自定义的控件都是可以重复利用的,这时我们可以想想,如果把这些自定义控件都封装成一个JAR包,然后用一个项目积累起来