首页 > 编程语言 >JAVA jar包转.NET dll文件注意事项

JAVA jar包转.NET dll文件注意事项

时间:2023-08-08 12:01:05浏览次数:40  
标签:包转 JAVA 文件 xxx jar dll NET IKVM

一、配置等

javaVersion :”1.8.0_151”

IKVM:ikvm-8.1.5717.0

IKVM下载地址:链接:https://pan.baidu.com/s/1mYutk0yghHxw2rOgFpDKJw

提取码:0777

IKVM需要配置环境 :将IKVM.NET的bin文件夹的地址添加到环境变量。

计算机右键属性–高级系统设置–高级–环境变量–在系统变量中找到PATH–将bin文件夹的地址添加进去

 

二、碰到的问题及解决方案

1.如果一个包依赖多个包怎么处理

2.C#中怎么调用?

需要引用IKVM.NET提供的dll 。 到ikvm安装路径的bin目录中 找到相关的dll, 一般只需要IKVM.OpenJDK.Core.dll 。之后便可以调用dll中的java方法

 

另外:引用生成的dll时,中途产生的依赖项的dll也要引用 ;

调用方法时引入命名空间,jar包中的包名就是命名空间名称,不是dll的名称,比如包名一般是com.xxx.xxx,那么C#的命名空间就是com.xxx.xxx。

3.打包时如果有内部类需要将内部类的.class文件也放到jar包目录下。

4.如果执行发现C#代码执行结果与JAVA代码执行结果不一致,可能原因为IKVM的版本和文件不是最新,需要使用NewGet获取对应版本的IKVM。

5.包含main函数的jar包应该怎么处理?

包含main函数的jar包用命令ikvmc 执行的时候会直接生成.exe文件。我们需要dll文件应该直接使用-out命令指定文件格式。如:

Ikvmc -target:library xxx.xxx.jar -r:xxx.xxx.dll -out:xxx.xxx.dll

6.warning提示需要处理吗?应该怎么处理?

 

一般是warning class xxx not found

这种警告一般需要处理,因为有可能使用的方法就用到了警告类里面的方法。一般警告了哪个类,建议使用IDEA maven工具下载对应的jar包,将jar包转换成dll文件。再引入到需要生产的jar包中。

7.依赖包太多导致需要引入的dll文件多怎么处理?

一般我们依赖什么包就处理成dll文件再使用IKVMC命令引入到目标dll内,如果嫌弃项目需要引入的dll文件过多,那可以在打包目标jar包的时候将依赖包打包到一起,后再处理目标jar包。

将依赖包一起打包:自己查吧

标签:包转,JAVA,文件,xxx,jar,dll,NET,IKVM
From: https://www.cnblogs.com/wenthing/p/17613792.html

相关文章

  • Java后端07(Spring未完成)
    Spring​ 涉及的设计模式:单例模式,简单工厂模式,代理模式,观察者模式,反射,注解。。。。。Spring配置文件文件头<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework......
  • java mybatisplus @Table(typerHadler)的坑
    在使用JavaMyBatis-Plus的@Table注解时,如果使用了typerHadler属性,可能会遇到一些问题和坑。下面是一些常见的问题及其解决方案:1.设置了typerHadler属性但不起作用:如果在@Table注解中设置了typerHadler属性,但在实际使用中没有生效,可能是因为配置的类型处理器没有正确注册。请确保......
  • 遇到的情况---hadoop集群-- NodeManager启动不起来--java.io.FileNotFoundException
    情况hadoop集群nodemanager启动不起来,查看输出的日志报错java.io.FileNotFoundException:/hadoop/dfs1/log/hadoop-yarn/hadoop-cmf-yarn-NODEMANAGER-host251.log.out(Read-onlyfilesystem)管理后台点击查看NodeManager的日志文件,角色日志文件时报错访问不到。原因目录损......
  • Java 09 函数式接口
     消费者consumerimportorg.junit.Test;importjava.util.function.Consumer;publicclassconsumer{publicvoidtest02(Consumer<String>consumer){consumer.accept("abc");}@Testpublicvoidf1(){test02(s......
  • JavaScript中16进制颜色与rgb颜色互相转换
    16进制转rgbfunctionhexToRgba(hex,opacity){if(!hex)hex='#ededed';letrgba='rgba('+parseInt('0x'+hex.slice(1,3))+','+parseInt('0x'+hex.slice(3,5))+','+......
  • 【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)
    【关键字】视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解码步骤使用的是普通......
  • Java读取Excel中的合并单元格
    1、 Maven仓库下载导入在pom.xml中配置maven路径,指定依赖,如下:<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.1</version></dependency><dependency><groupId>......
  • 遇到的问题----java Unsupported major.minor version 51.0
     Unsupportedmajor.minorversion51.0不同的JDK版本使用的major.minor不同,所以会导致这个错误。编译器运行的jdk选择版本和使用的jdk版本号应该对应。解决起来也很方便:打开exclipse中项目上的属性—javacompiler–选择一个合适的版本后重新编译即可。具体步骤解决:项目------......
  • 数据查询解决列名和java对象属性名对不上——三种方法
    问题描述:当使用查询语句时,返回来的数据出现null值。下面是数据库映射文件代码查询语句:<selectid="selectCarById"resultType="com.powernode.mybatis.pojo.Car">select*fromt_carwhereid=#{id}</select>下面是返回查询返回数据 原因是:查询结果集的列名:id,c......
  • java日常.md
    JavaSpringSpring中进行Junit测试时,PageHelper未被消耗如果mapper被mock掉,会导致Mapper之前的PageHelper的线程存储未被消耗。导致后续出现错误。//源码//.....voidq(){PageHelper.startPage(1,1); someMapper.query();}//.....//问题单测@Mockpri......