jni4net使用小结
- 网站首页
- 一个简单的例子:
1) 从这里下载binaries,然后解压缩.
https://sourceforge.net/projects/jni4net/files/
2) 创建一个.net的console application.
3) 讲lib目录中的jni4net.n-0.8.8.0.dll和jni4net.j-0.8.8.0.jar分别拷贝到单独的目录和根目录.


4) 在项目中添加jni4net.n-0.8.8.0的引用

5) 在Program.cs中加入如下的代码:
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using java.io; using java.lang; using java.util; using net.sf.jni4net; using net.sf.jni4net.adaptors; namespace Jni4NetTest2 { class Program { static void Main(string[] args) { var setup = new BridgeSetup(); setup.Verbose = true; setup.AddAllJarsClassPath("./"); // create bridge, with default setup // it will lookup jni4net.j.jar next to jni4net.n.dll Bridge.CreateJVM(new BridgeSetup() { Verbose = true }); //Bridge.RegisterAssembly(typeof(jni).Assembly); // here you go! java.lang.System.@out.println("Hello Java world!"); TestNotesExporterInJava(); Console.ReadLine(); } } } |
这个程序运行起来后,就会打印出Hello Java world!的字样.
- 上面简单的例子只是使用了jni4net自带的库,如果使用其他的.jar库,就需要使用proxygen工具来生成proxy类.
如果某个软件支持java接口, 想用里面的某个jar文件的时候,就用如下的命令来生成:
|
"C:\jni4net-0.8.8.0-bin\bin\proxygen.exe" "C:\Program Files (x86)\<软件目录>[\<子目录>]\<需要的jar文件名>.jar" -wd "<输出目录>" |
上面用到的jar文件如果依赖于其他的jar文件,运行命令的时候会报类似如下的错误:
|
Can't load class <namespace>[.<sub namespace>].<class name> |
这个时候就需要使用-cp或者dp参数.
比如:
|
"C:\jni4net-0.8.8.0-bin\bin\proxygen.exe" "C:\Program Files (x86)\<软件目录>[\<子目录>]\<需要的jar文件名>.jar" -wd "<输出目录>" –cp “c:\software1\libs”,”c:\software2\aa.jar” |
-cp参数的写法可能仿照这里的就可以
https://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html

Dp参数还没有研究明白.
- 官网给的例子:
https://github.com/jni4net/jni4net/wiki/Calling-Java-in-C%23
- 官网给出的proxy的proxygen用法
https://github.com/jni4net/jni4net/wiki/Generating-Proxies
jni4net使用小结的更多相关文章
- 从零开始编写自己的C#框架(26)——小结
一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...
- Python自然语言处理工具小结
Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...
- java单向加密算法小结(2)--MD5哈希算法
上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...
- iOS--->微信支付小结
iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...
- iOS 之UITextFiled/UITextView小结
一:编辑被键盘遮挡的问题 参考自:http://blog.csdn.net/windkisshao/article/details/21398521 1.自定方法 ,用于移动视图 -(void)mov ...
- K近邻法(KNN)原理小结
K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...
- scikit-learn随机森林调参小结
在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...
- Bagging与随机森林算法原理小结
在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...
- scikit-learn 梯度提升树(GBDT)调参小结
在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参中的一些要点. 1. scikit-learn ...
随机推荐
- java util Aarrys 类
toString方法 产生一维数组的二维版本 public static String toString(type[] a) { //type 是传入数据类型 if (a == null) retu ...
- kmp算法专题总结
next数组的含义:next[i]表示以字符串s的第i个字符为结尾的后缀与s前缀匹配的长度 next数组也可以当做fail数组,即当模式串s[j]与串t[i]不匹配时,只要将j转换到next[j]继续 ...
- Ext.js入门:TabPanel组件(八)
一:TabPanel组件简介 二:简单代码示例 三:使用iframe作为tab的标签页内容 四:动态添加tabpanel的标签页 五:为tabpanel标签页添加右键菜单 方式一: <html ...
- BZOJ2325 [ZJOI2011]道馆之战 树链剖分 线段树
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2325 题意概括 给你一棵N个点的树,树上的每个节点有A,B两块区域,且每种区域有两种状态:可以走的 ...
- MooFest POJ1990
题意: 一群牛参加完牛的节日后都有了不同程度的耳聋,第i头
- 6-2 S树 uva712
这题关键是 反转 查询是固定按照x1x2x3来的 那么先收集前面的顺序 然后在数组里面直接调用即可 比如前面的树是 x3 x1 x2 就把这个当作数组下标 最左边的树是 1<&l ...
- char *s 与 char s[ ]的区别
程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其 操作方式类似于数据结构中的栈. 2.堆区( ...
- 陈国凯oi历程
从此成了OI退役狗 说实话,当时NOIP比赛前就想写这篇,结果一直没有足够的动力和时间写,现在高考完了,也有了时间,就写一点东西,记录一下我的OI经历吧. 初入OI 高一时,我是信息技术课代表(当然没 ...
- [漏洞分析]thinkcmf 1.6.0版本从sql注入到任意代码执行
0x00 前言 该漏洞源于某真实案例,虽然攻击没有用到该漏洞,但在分析攻击之后对该版本的cmf审计之后发现了,也算是有点机遇巧合的味道,我没去找漏洞,漏洞找上了我XD thinkcmf 已经非常久远了 ...
- 乐迪AT9
AT9使用说明书.pdf https://wenku.baidu.com/view/c17e85ea2f60ddccda38a0fc.html?re=view 乐迪AT9遥控器的基础使用方法第一课视频 ...