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

语言混编之java调用c dll jni技术小试

刚从网上看到c和java混编的文章,就亟不可待的尝试了一下。呵呵,效果还是很好的。下面将自己成果粘贴出来
(转载于http://www.zxbc.cn/html/20070518/19986.html)。实验之后可以通过。
1java中调用c语言
首先编写Main.java
public class Main 
{
 public native static int getStrNum(byte str[], int strLen);

在命令行中,使用如下命令编译:
javac Main.java 
下面的命令将生成Main.h头文件
javah Main 
打开vs2008, 新建工程MakeDll(win32 console application),设置项目属性如下:
在project-》MakeDll Properties-》在General选项卡上,选择生成dll文件。
同时需要在项目的c++下general下的Additional include directory下加载jdk安装目录下的include文件夹和该文件夹下的win32
子目录。
将第一步生成的Main.h文件假如到工程中,同时新建一个main.cpp文件,在其中假如如下代码:
#include "Main.h"
#include <string.h>
JNIEXPORT jint JNICALL Java_Main_getStrNum  (JNIEnv *env, jclass cls, jbyteArray str, jint strLen) 

 jbyte *buffer = (*env).GetByteArrayElements(str, 0); 
 buffer[strLen] = ' '; 
 jint len = strlen((char*)buffer); 
 
 return len; 

编译即可生成MakeDll.dll文件。
在java源文件中调用该dll文件(注意需要将dll文件和编译的class文件放置在同一个文件夹下面)
java源文件代码如下:
public class Main
{
 static
 {
  System.loadLibrary ("MakeDll");
 }
 
 public native static int getStrNum (byte[] str, int strLen);
 
 public static void main (String[] args)
 {
  Main instance = new Main ();
  String str = new String ("haha");
  int num = instance.getStrNum (str.getBytes (), str.length ());
  System.out.println (num);
 }
}
编译该java源文件,同时执行该文件。
javac Main.java
java Main
即可输出相应结果。


相关文档:

JAVA基础知识精华总结

1、 对象的初始化
(1) 非静态对象的初始化
在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。
如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
构造方法的作用就是初始化。
(2) 静态对象的初始化
程序中主类的 ......

通过 DAOFactory 的泛型写法来演示Java泛型的特殊用法

通过 DAOFactory 的泛型写法来演示Java泛型的特殊用法
小型项目中常常都没有用三方持久化框架,而大都是用公司或自行依据DAO模式封装的一些组件来完成数据库持久化动作,并且,通常为了更具可扩展性,常常使用抽象工厂模式来解耦合。
一、先看代码
1、简单工厂代码
/************************************************* ......

在java中使用key value型数据库Berkeley DB

除了关系型数据库外,还有key-value型数据库可以选择,在大型的查询系统中,key-value型数据库可以出色的完成某些任务。
Oracle的Berkeley DB就是一种key-value型数据库,本文简要介绍在java中使用Berkeley DB。
PartKey.java:
import java.io.Serializable;
public class PartKey implements Serializable
{
priva ......

REST风格的Java MVC框架:WebWind简介

几天前,刚看了IBM Developerworks上某个技术大牛做的关于设计REST风格的Java MVC开发框架的文章,今天在Google Code上发现了一个基于Java的REST风格的MVC开发框架,取名WebWind

“WebWind是一个Java MVC框架。和常见的MVC框架如Struts、WebWork不同,WebWind天生支持用户友好的URL,让Web应用程序对搜索引擎更加 ......

java反射

package reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Test {
 public static void main(String[] args) {
  try {
   Class c = Class.forName("reflect.Student");// 根据类的完整类名创建类象
    ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号