`
openstudy
  • 浏览: 236044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jni入门 vs2010 & VC6

阅读更多
1.编写java类
package com;
public class TestDll {
static {
System.loadLibrary("test");
}

public native void sayHello(String msg);

public static void main(String[] args) {
new TestDll().sayHello("hello");
}

}

2.编译成class

3.调用javah生产头文件(.h)
调用javah文件时,需要在cmd命令行模式里面进入bin文件夹,里面存放着工程中所有的.class文件。随后调用:javah -classpath . -jni 包名.类名。

例:
javah -classpath . -jni com.TestDll

4.生成test.dll
a) VS2010
1:新建一个工程test,选择Win32工程,next
2:选择dll工程 finish就可以了
3:删除test.cpp文件,将TestJNI.h添加为工程头文件,先将com_TestDll.h拷到工程目录下,然后在header files 文件夹右键--->add --->existing item,将com_TestDll.h加入
4:打开StdAfx.h文件,再最后面添加:
     #include "com_TestDll.h"
5:编辑StdAfx.cpp,加入
JNIEXPORT void JNICALL Java_com_TestDll_sayHello
  (JNIEnv * evn, jobject obj, jstring message)
{
printf("call c++ ok");
}
6:打开工程属性,选择Configuration Properties --->VC++ Directories--->include Directories 添加jdk路径下的include和/include/win32目录,这里包含jni.h等头文件,如果不包含这两个目录,工程中的#include<jni.h>将无法找到所包含的文件
7:build工程,打开工程目录的debug目录,将其中生成的test.dll复制到eclipse工程的根目录即可,运行TestDll,控制台显示call c++ ok

b)VS2005
6:Tools->Options->Projects and Solutions->VC++ Directories,in the drop down select "include files" and add an entry there...(jni.h)

c)VC6
1:新建一个项目test, 项目类型为Win32 Dynamic-Link Library。点击OK
2:在弹出的窗口中选择A simple DLL project,点击Finish。
3:打开项目所在的文件目录,将生成的com_TestDll.h文件复制到此目录。点击左边中间的FileView,切换到文件浏览模式。在Header Files上点击右键,选择Add Files to Folder…。选择com_TestDll.h文件,点击OK。
4:打开StdAfx.h文件,再最后面添加:#include "TestHello.h"
5:打开StdAfx.cpp,在最后面添加一段代码:
JNIEXPORT void JNICALL Java_com_TestDll_sayHello
  (JNIEnv * evn, jobject obj, jstring message)
{
printf("call c++ ok");
}
6:在VC的菜单上选择Tools-Options…,打开选项对话框。在Directories文件夹,添加上jdk所在文件夹下的include和include\win32文件夹。
7:点击VC上的菜单项Build-Build All,在VC项目Debug文件夹中生成test.dll,复制到eclipse工程的根下。
分享到:
评论

相关推荐

    08_12_JNI_02_jni数据类型&属性方法

    08_12_JNI_02_jni数据类型&属性方法08_12_JNI_02_jni数据类型&属性方法08_12_JNI_02_jni数据类型&属性方法08_12_JNI_02_jni数据类型&属性方法08_12_JNI_02_jni数据类型&属性方法08_12_JNI_02_jni数据类型&属性方法08...

    08_17_JNI_04_JNI引用&缓存策略

    08_17_JNI_04_JNI引用&缓存策略08_17_JNI_04_JNI引用&缓存策略08_17_JNI_04_JNI引用&缓存策略08_17_JNI_04_JNI引用&缓存策略08_17_JNI_04_JNI引用&缓存策略08_17_JNI_04_JNI引用&缓存策略08_17_JNI_04_JNI引用&缓存...

    android-aes-jni, 用于 jni& Java的Android AES示例.zip

    android-aes-jni, 用于 jni& Java的Android AES示例 android-aes-jni git clone https://github.com/panxw/android-aes-jni.git cd android-aes-jni ndk-build

    JNI入门Demo3.0

    通过这个"JNI入门Demo3.0",我们可以深入理解动态注册Native函数的概念和实现,从而在实际项目中更灵活地使用JNI。需要注意的是,动态注册虽然方便,但也需要谨慎处理,因为它可能会引入运行时错误,如方法签名不...

    JNI入门知识介绍

    JNI(Java native interface)入门知识

    JNI入门之HelloWorld(一)

    ### JNI入门之HelloWorld(一)详解 #### 一、引言 JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码与其他语言写的代码进行交互。JNI接口提供了若干公共服务,并为Java虚拟机和本机应用程序或...

    JNI入门教程之HelloWorld篇(详细版).doc

    ### JNI入门教程详解:HelloWorld篇 #### 一、引言与背景 Java Native Interface (JNI) 是Java语言与本地代码交互的桥梁,允许Java应用调用C或C++等本地语言编写的代码,这对于扩展Java功能、提高性能或集成已有非...

    Android Studio JNI开发入门教程

    Android Studio的JNI(Java Native Interface)开发入门教程 JNI,全称为Java Native Interface,是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在Android开发中扮演着重要角色,尤其当...

    使用JNI,vs2010 生成dll, JSP中调用dll

    打开VS2010,选择“新建”&gt;“项目”,然后在模板列表中找到“Win32控制台应用程序”。在“应用程序设置”对话框中,确保选中“动态库(.dll)”选项,然后点击“完成”。 在生成的项目中,我们将添加JNI头文件和...

    JNI_VC6_Opencv做的dll_图片转视频

    JNI_VC6_Opencv做的图片转视频dll,其中的def有输出函数名,可以修改;在VC6下可直接编译通过;直接在eclipse中配置好后可以直接调用生成的dll。 遇到这方面需求,可以寻求帮助:415926459

    JNI_Demo.rar_DEMO_JNI DEMO_jni c_jni dll_vc6 dll

    总结起来,"JNI_Demo.rar"是一个关于如何在Java程序中使用JNI调用由VC6.0生成的DLL的教程。这个DEMO通过具体的代码示例展示了JNI的工作原理和实现过程,对于学习和理解JNI技术具有很好的参考价值。

    Android JNI入门Demo

    这个"Android JNI入门Demo"是一个适合初学者了解和学习JNI基础操作的实践项目。 在Android开发中,JNI的应用场景广泛,例如:提升性能的关键算法实现、调用系统库、访问硬件设备、游戏开发中的图形渲染等。下面将...

    JNI入门demo

    Java Native Interface的入门级学习demo,完美的解决了java.library.path中找不到动态库的问题,并解决了windows和linxu的兼容问题,使得这个项目打包成jar包后,能够直接在windows或Linux的java代码中调用

    jni示例vs2005 c++实现

    jni示例vs2005 c++实现,有c++项目源文件,供大家参照,在java目录中直接运行,java TestJni 出效果!

    JNI 入门初级教程

    ### JNI入门初级教程知识点概述 本教程旨在为初学者提供JNI(Java Native Interface)的基础知识与实践指导。JNI是Java平台的一部分,它允许Java代码与其他语言编写的代码进行交互,尤其是C和C++。这对于利用现有C...

    JNI入门Demo1.0

    通过学习和实践这个JNI入门Demo1.0,你可以掌握JNI的基本用法,包括声明`native`方法、生成头文件、编写C++代码以及构建和加载动态库。这将为你进一步探索Android的原生开发打下基础,比如使用C++提升性能、接入第三...

    JNI入门Demo2.0

    本教程"JNI入门Demo2.0"将带你深入理解JNI的使用,特别是如何通过JNI反调用Java方法。 1. **JNI基础知识**: - JNI接口定义了Java虚拟机(JVM)和本地代码之间的通信规范,包括函数调用、数据类型转换、异常处理等...

    java jni从入门到精通

    Java JNI(Java Native Interface)是Java平台中一个重要的特性,它允许Java代码和其他语言写的代码进行交互。JNI自Java 1.1版本引入以来,已经成为Java开发者与底层系统交互的重要工具,尤其在需要调用C/C++库或者...

Global site tag (gtag.js) - Google Analytics