- 浏览: 670915 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (233)
- mysql (20)
- tomcat (17)
- log4j (4)
- jdbc (2)
- hibernate (7)
- highcharts (10)
- java (27)
- bat (5)
- html (18)
- xampp (6)
- apache (9)
- Spring (3)
- windows (13)
- js (38)
- jquery (10)
- struts (20)
- json (1)
- css (7)
- 浏览器 (5)
- ASCII码表 (1)
- svn (3)
- 正则表达式 (3)
- vb (1)
- jsp (4)
- xml (2)
- C语言 (1)
- dll (1)
- 数据库 (8)
- 随便写 (19)
- WebService (1)
- Linux (1)
- 云计算 (2)
- HTTP (2)
- 音楽 (1)
- eclipse (2)
- JFreeChart (1)
- jnative (1)
- ant (1)
- WordPress (1)
- JavaEE (1)
- tag (1)
- ognl (1)
- 设计模式 (3)
- sql (2)
- office (5)
- 软件 (6)
- 健身 (18)
- php (2)
- 读书 (4)
- 管理 (1)
- sublime text (2)
- angularJS (1)
最新评论
-
资深菜鸟程序员:
正解 当中,你是最早的,你转载的那篇已经消失了,所以你就是最吊 ...
程序包com.sun.image.codec.jpeg不存在 -
jun1022509040:
http://download.csdn.net/detail ...
C3P0错误APPARENT DEADLOCK!!!解决 -
alafighting:
厉害!膜拜了~
程序包com.sun.image.codec.jpeg不存在 -
darrenzhong:
c3p0 报错APPARENT DEADLOCK!!! 解决方 ...
C3P0错误APPARENT DEADLOCK!!!解决 -
tslihejun:
谢谢,解决了我的问题。
highcharts 大量数据下y轴值精度丢失的解决
// 调用DLL,取出数组中的最大值 public voic fnGetMax(int[] arrInt) { try ... ... // 创建JNative对象 JNative jnative = JNative("test.dll","fnGetMax"); // 为数组创建空间 Pointer aArrIntInput = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * arrInt.length)); // 初始化数组 for (int i = 0; i < arrInt.length; i++) { aArrIntInput.setIntAt(4 * i, arrInt[i]); } // 设定传入参数 jnative.setParameter(0, pArrIntInput); // 数组指针 jnative.setParameter(1, arrInt.length); // 数组大小 // 设定返回类型 jnative.setRetVal(Type.INT); // 调用DLL jnative.invoke(); // 打印返回值 int iRet = jnative.getRetValAsInt(); System.out.println(iRet); catch ... ... }
double的场合
// 传入和返回类型是double double dParam = 10.23; ... ... jnative.setParameter(0, Type.DOUBLE, Stirng.valueOf(dParam)); ... jnative.setRetVal(Type.DOUBLE); ... String dRet = jnative.getRetVal(); System.out.println(dRet);
评论
6 楼
tjmljw
2012-05-22
kidding87 写道
好的,搞java没有,像C、C++搞过内存分配这块的东西
JNative也是瞎子摸象啊,官方的文档也没什么,就几个sample
JNative也是瞎子摸象啊,官方的文档也没什么,就几个sample
这是JNative 1.3的文档,找不到1.4的了,凑合看下吧,一起摸索前进。
http://jnative.free.fr/docs/
5 楼
kidding87
2012-05-22
好的,搞java没有,像C、C++搞过内存分配这块的东西
JNative也是瞎子摸象啊,官方的文档也没什么,就几个sample
JNative也是瞎子摸象啊,官方的文档也没什么,就几个sample
4 楼
tjmljw
2012-05-22
kidding87 写道
这句好像就是java通过调用JNative.dll来分配内存
http://www.iteye.com/problems/83386#solutions
这个是我最近提的一个问题,你可以试试你的代码加上个比较大的循环,看有没有OOM
Pointer aArrIntInput = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * arrInt.length));
http://www.iteye.com/problems/83386#solutions
这个是我最近提的一个问题,你可以试试你的代码加上个比较大的循环,看有没有OOM
我试过了,一千万的循环下,没出现内存问题。
另外我看了你的代码,猜测几个地方可能存在问题,你可以试一试。
// 把下面代码中的100修改为实际需要内存的大小 Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
// 我没有用到这个释放内存的方法,而你的代码恰恰是这个方法中抛出了异常 // 试着注释掉这个方法试一试 JNative.freeMemory(p.getPointer());
// 去掉下面的方法 p.zeroMemory();
JNative我也是头一次接触,不知道能不能帮你解决问题,希望以后我们能互相帮助。
3 楼
kidding87
2012-05-19
这句好像就是java通过调用JNative.dll来分配内存
http://www.iteye.com/problems/83386#solutions
这个是我最近提的一个问题,你可以试试你的代码加上个比较大的循环,看有没有OOM
Pointer aArrIntInput = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * arrInt.length));
http://www.iteye.com/problems/83386#solutions
这个是我最近提的一个问题,你可以试试你的代码加上个比较大的循环,看有没有OOM
2 楼
tjmljw
2012-05-18
kidding87 写道
不知道楼主遇到这个内存无法释放的问题没有
目前只是调查Java调用C的方法,还没有遇到内存方面的问题。
1 楼
kidding87
2012-05-18
不知道楼主遇到这个内存无法释放的问题没有
发表评论
-
浅析 Java Thread.join() (转载)
2014-10-30 08:52 701转载: 一、在研究join的用法之前,先明确两件事情。 ... -
Ehcache缓存配置
2014-08-26 15:17 1710Ehcache缓存配置 简介 ... -
List 转换 String
2014-07-25 14:53 847List<Integer> 转换成用逗号分 ... -
Java中的作用域
2014-06-10 09:21 866作用域public,private,protecte ... -
Java中复杂类型数组到基本类型数组的转化
2014-02-28 10:05 2599必要条件: commons-lang3 下载地址http:// ... -
拷贝InputStream到OutputStream
2014-01-15 09:42 1220public static int copy( fi ... -
POJO和JavaBean的区别和联系
2013-11-04 09:25 1015POJO 和JavaBean是我们常见 ... -
J2EE组件
2013-09-25 14:15 933J2EE平台由一整套服务( ... -
Java名词列表
2013-09-25 08:48 1345RMI(Remote Method Invocation) ... -
ant编译时的utf8
2013-09-10 11:42 1046使用ant进行打包,如果使用了replace命令,则文件的编码 ... -
程序包com.sun.image.codec.jpeg不存在
2013-09-10 11:02 20333转自 http://www.vktone.com/ar ... -
Web中的异常JNative library not loaded
2013-08-28 14:31 6272Tomcat中的项目A存在已久,其中的JNative调用也一直 ... -
Create array with Array.newInstance
2013-08-13 16:30 1119转自http://www.java2s.com/Tutoria ... -
Java 反转数组
2013-08-13 15:59 6537import java.lang.reflect.Ar ... -
ssh中配置JFreeChart
2013-03-13 11:26 4547前提:struts2,spring3.0.5配置完毕 下面配 ... -
java中float与byte[]的互转
2013-01-10 17:24 39165起因:想把一个float[]转换成内存数据,查了一下,下面两个 ... -
整数相除时要注意
2012-11-20 14:21 1193整数/整数=整数。当需要保留小数位时,需要强制类型转换。 表达 ... -
Java 命令指定log4j配置文件
2012-10-18 10:42 4416命令行模式下执行class文件时,指定log4j的配置文件: ... -
struts2中action的作用域为session时,如何使浏览器提交的List与服务器保持完全一致
2012-08-17 17:57 2720问题:action的scope= ... -
Java不使用web容器,发布WebService应用
2012-06-27 14:04 2647文章转自:http://www.cnblogs.com/lix ...
相关推荐
3. **调用DLL函数**:使用JNative提供的API,你可以直接调用DLL中的函数。例如,如果你有一个名为`myFunction`的本地方法,可以使用`JNative.callVoidMethod`或相应的函数进行调用。 4. **错误处理**:由于涉及到...
使用jnative时,你需要创建一个Java接口来映射DLL中的函数。接口中的方法声明应与DLL中的函数签名匹配。例如: ```java public interface MyDllLibrary { int callDllFunction(int input); } ``` 4. **加载DLL并...
首先定义Java中的JNI接口,然后使用`javah`生成C/C++的头文件,接着编写并编译DLL,最后在Java程序中加载并调用DLL函数。这个过程虽然复杂,但是一旦熟悉了,就能灵活地在Java和本地代码之间建立桥梁,充分利用两者...
4. **JNI函数调用**:Java代码通过`System.loadLibrary()`加载DLL,然后通过`native`方法声明来调用DLL中的函数。 5. **本地方法接口**:JNI提供的一组接口,用于在Java和本地代码之间建立桥梁,包括创建和初始化...
创建了一个`JNative`实例来指向DLL中的`Add`函数,并设置了返回值类型为整型。 ```java int i = 0; jnative.setParameter(i, 6); // 设置第一个参数为6 ++i; jnative.setParameter(i, 100); // 设置第二个参数为100...
jna和jnative的一个简单示例工程,包含jna和jnative的jar包,还有jna的chm api文档以供参考。其中.dll是的函数是求两个数的较大值。这是我初入学习java访问.dll做的一个示例。
标题中的"JNative.jar"和"JNativeCpp.dll"是两个关键组件,分别代表Java和C++之间的交互层。在IT行业中,这样的组合通常用于实现Java应用与原生系统资源的紧密集成,例如调用操作系统底层功能或者加速计算密集型任务...
在这个例子中,`loadLibrary`加载了名为"jnative"的DLL,然后`callDllFunction`就是DLL中的一个函数,它接受一个整数和一个字符串作为参数。 总的来说,JNative提供了一个方便且高效的途径,使得Java开发者能够在不...
标题中的“JNA.jar-JNative.jar-dll创建-JAVA调用-VC调用”涉及到的是Java平台下通过JNI(Java Native Interface)的两种实现方式,JNA(Java Native Access)和JNative,来与C/C++编写的动态链接库(DLL)进行交互...
jNative.jar jNativeCpp.dll libjNativeCpp.so 免费下载jNative.jar jNativeCpp.dll libjNativeCpp.so 免费下载jNative.jar jNativeCpp.dll libjNativeCpp.so 免费下载jNative.jar jNativeCpp.dll libjNativeCpp.so ...
在C/C++中调用DLL,通常涉及到`GetProcAddress`函数来获取函数指针,然后通过这个指针来调用DLL中的函数。而在Java中,JNA和JNative会处理这些细节,提供更友好的接口。 总的来说,这个压缩包提供了Java调用C/C++ ...
下面通过一个具体的例子来展示如何使用JNative框架调用DLL中的函数。 #### 示例场景 假设我们需要编写一个Java程序,该程序调用名为`TestAppSvr.dll`的DLL文件中的`TestConnect()`函数来检测某个应用服务器的状态...
1. **创建本地方法接口**:在Java类中声明本地方法,这些方法的实现将在DLL中完成。例如: ```java public class NativeDemo { static { System.loadLibrary("JNativeCpp"); // 加载DLL库 } public native ...
JNative的出现,简化了这一过程,使得Java程序员可以更加便捷地利用DLL中的功能。 JNative的核心思想是通过Java接口来调用DLL中的函数,它提供了一种高级的抽象层,隐藏了JNI的底层细节。这样,开发者可以避免直接...
jnative包用于调用dll动态库,目前(2011-12-20)最新版本为1.4RC2,官方正式版本文档为1.3,详见官方地址: http://jnative.free.fr/docs/ 这是最新的帮助文档HTML离线包,希望对大家有帮助 Packages org.xvolks....
这是一个关键的库文件,它包含Java Native Interface (JNI) 的实现,使得Java代码可以通过JNI接口调用C或C++编写的函数,这些函数通常封装在DLL中。JNative.jar使得开发者无需编写大量的JNI代码,只需简单的API调用...
- 调用DLL函数:在Java代码中调用声明的native方法,由JNative库负责实际的函数调用。 3. **具体示例**: - 假设有一个DLL文件(如kgdlltest.dll),其中包含一个名为`addNumbers`的函数,接收两个整数参数并返回...
1. **设置环境**:确保Java项目包含JNative的库文件,Windows下需要设置系统路径以包含JNativeCpp.dll,Linux下则需确保libJNativeCpp.so在可执行文件的搜索路径中。 2. **编写Java代码**:在Java类中声明本地方法...
在JNative中,开发者可以通过Java方法调用本地函数,就像调用Java方法一样方便。 **三、JNative API核心概念** 1. **Native Method**: 本地方法,由C/C++编写,通过JNative在Java中调用。 2. **Register Native ...
在`jnative` 1.3和1.4版本中,开发者可以创建Java接口,这些接口对应于C++中的函数,然后通过`jnative`库在运行时动态地加载和调用这些函数。这个过程大大简化了Java调用C++代码的复杂性,使得Java应用程序能够充分...