易截截图软件、单文件、免安装、纯绿色、仅160KB

java native interface(JNI)技术简单应用

      手上一个项目需要通过usb口去读取usbkey的信息,厂家提供的只有C/C++的接口,而主应用是java的,所以需要使用java去调用动态链接库,所以花了点时间研究了下JNI技术,jdk对JNI技术封装得很到位,使用起来非常简单,JNI技术最关键还是在于jni数据类型和本地数据类型的转换。先简单罗列下JNI的创建过程:
      首先需要写一个java类,然后定义需要使用C/C++去实现的方法(虽然说jni是java native interface,但是目前只支持c/c++实现),使用native关键字声明。这里写一个简单的例子:
TestJNI.java
package test.jni;
public class TestJNI
{

static
{
System.loadLibrary("TestJNI");
//这个是之后产生的库的名字,不需要加后缀,
//自动根据系统找.dll或者.so;
}
public native String helloWorld();

public static void main(String[] args)
{
TestJNI t = new TestJNI();
System.out.println(t.helloWorld());
}
}
然后将以上文件使用javac编译,然后使用javah命令,如下:
javac test\jni\TestJNI.java
javah test.jni.TestJNI
之后会得到一个test_jni_TestJNI.h的头文件,内容如下:
test_jni_TestJNI.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class test_jni_TestJNI */
#ifndef _Included_test_jni_TestJNI
#define _Included_test_jni_TestJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: test_jni_TestJNI
* Method: helloWorld
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_test_jni_TestJNI_helloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
然后编写c/c++实现,如下:
TestJNI.c
#include <stdio.h>
#include <jni.h>
#include <windows.h>
#include "test_jni_TestJNI.h"
JNIEXPORT jstring JNICALL Java_test_jni_TestJNI_helloWorld
(JNIEnv * env, jobject object){
//在c中必须给形式参数声明变量名,C++中可以不用,头文件中不需要修改;
const char* str = "helloWorld";
return (*env)->NewStringUTF(env,str);
//C++中可以直接env->NewStringUTF(


相关文档:

java列出某文件夹下的所有文件


File   f=new   File("DerectoryName");      
  String   []results=f.list();   
  
import java.io.*;    
  public class listFile    
  {  &nb ......

java调用dll例子


最佳答案
1. 编写范例文档
public class TestNative
{
private native static int Max(int a,int b);
public static void main(String[] args)
{
System.out.println(Max(4,5));
}
static
{
System.loadLibrary("VCdll");
}
}
其中
LoadLibrary中的DLL文件名称可以 ......

JAVA调DLL,.JNI技术实践

鉴于爬虫开发需要一个图片解析功能的函数,到网络上查找了一些jni方面的内容,并做了自己的一些修改,具体如下:
   目前java与dll交互的技术主要有3种:jni,jawin和jacob。Jni(Java Native Interface)是sun提供的java与系统中的原生方法交互的技术(在windows\linux系统中,实现java与native method互调)。 ......

Java对象XML序列化框架-Simple2.0


Java对象XML序列化框架-Simple2.0


Simple是一个XML序列化框架,一个Java
版本宽容的序列化框架,能够快速在Java
平台上开发XML。支持通过annotations完全配置化的XML结构;提供版本管理框架允许向前和向后兼容序列化;更好的性能,使用轻量级StAX提升XML反序列化
进程,比XStream和JAXB更快;通过namespace ......

java 解析 office系列文档

参考:
  http://danadler.com/jacob/
  http://jakarta.apache.org/poi/
  http://www.onjava.com/pub/a/onjava/2003/01/22/poi.html
  http://www.csdn.net/develop/article/15/15311.shtm
  http://forum.java.sun.com/thread.jsp?forum=40&thread=382666&tstart=0&trange=15
  Java Excel ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号