1、打开vs2022创建一个类库项目,vs版本不限制
2、生成dll,没有技术含量跳过
二、编写java代码
1.用jni4net工具把dll文件编译;
文件夹找到jni4net的bin目录,创建cmd命令文件,方便后续使用;
命令:.\proxygen.exe “DLL所在路径” -wd “java项目根路径”
如:.\proxygen.exe “D:\Java\HelloWorld.dll” -wd “E:\Project\Jni4netProject”
执行后java项目的根目录下会多出下图红色框中的文件和一个build.cmd文件
build.cmd 配置之后会报错需要配置环境变量
javac配置方式:https://blog.csdn.net/write6/article/details/79136388
csc配置方式:https://blog.csdn.net/wangxianglian/article/details/7225858
2.将dll文件打包乘jar包
将命令行切换到java项目的根目录下(和src同级目录),执行命令build.cmd,java项目根目录下会编译出2个文件分别为HelloWorld.j4n.dll和HelloWorld.j4n.jar,
如下图:
3.拷贝文件并添加jar包依赖;
然后将jni4net的lib目录下的jar文件和dll文件copy到java项目的根目录下,将C#项目的HelloWorld.dll的文件也copy到java项目的根目录下,
添加依赖的方式有多种(我用的第一种),如:
1.将HelloWorld.j4n.jar和jni4net.j-0.8.8.0.jar添加到File—Progect Structure --Modules–Depengdenies–
2.把jar包放到指定位置,在pom文件中添加依赖,如:
<dependency>
<groupId>com.xgtx</groupId>
<artifactId>ObcClient.j4n</artifactId>
<version>1.0.1</version>
<scope>system</scope>
<systemPath>C:/dll/ObcClient.j4n.jar</systemPath>
</dependency>
<dependency>
<groupId>com.xgtx</groupId>
<artifactId>jni4net.j</artifactId>
<version>1.0.1</version>
<scope>system</scope>
<systemPath>C:/dll/jni4net.j-0.8.8.0.jar</systemPath>
</dependency>
4.java代码
public static void main(String[] args) {
Bridge.setVerbose(true);
Bridge.init();
File dll = new File( "HelloWorld.j4n.dll");
Bridge.LoadAndRegisterAssemblyFrom(dll);
int result =helloWorld.Hello.display(66,22);
System.out.println("计算结果为:"+result);
}