java中使用jni(Java Native Interface)hello word!打印

来源:互联网 发布:qq堂能不能再mac上运行 编辑:程序博客网 时间:2024/05/19 20:00

步骤一: 先下载Microsoft Visual Studio 2008,这里我用的是2008

下载地址 :http://www.downza.cn/soft/10343.html#m_xgwz  选择本地下载

步骤二 :创建一个工程(my_jni),新建cn.itcast包,新建class类TestNative。


                                 

    在TestNative中写上方法native进行修饰

                                 

   然后使用javah命令(即在cmd输入javah),生成cn_itcast_TestNative.h文件

                                  

步骤三 :打开vs2008,其他语言——Visuall C++——Win32——Win32控制台应用程序——名称:nativeCode——确定。


                    

  然后在弹出对话框中选择应用程序设置——DLL——空项目


                          

步骤4:选中头文件右键——添加现有项——浏览添加刚才的cn_itcast_TestNative.h文件

步骤5:选中源文件——右键添加——新建项——C++文件(.cpp为后缀)——source.cpp——添加

代码入下:

#include"cn_itcast_TestNative.h"
#include<iostream>
using namespace std;
JNIEXPORT void JNICALL Java_cn_itcast_TestNative_sayHello(JNIEnv * env, jobject obj)
{
    cout<<"Hello word!my baby"<<endl;
}

                   

步骤6:复制jni.h、jni_md.h(两个jdk下的.h文件)到项目下,选中头文件目录—右键—添加现有项—添加这两个

jni.h  路径:C:\Program Files\Java\jdk1.8.0_101\include

jni_md.h   路径:C:\Program Files\Java\jdk1.8.0_101\include\win32(具体路劲根据你的jdk的安装路径)


在添加完cn_itcast_TestNative.h、jni.h、jni_md.h三个文件后需要将其路径添加项目--属性--c++--常规属性中的附加包含目录中 

                                                   

步骤7:将C/C++源文件编译成动态链接库(DLL)即刚才的新建的resource.cpp文件点击编译.生成.dll文件

                

步骤8把DLL文件加入到path环境下,XP下我的电脑——右键属性——高级——环境变量

我的路径:C:\Users\Administrator\Documents\Visual Studio 2008\Projects\nativeCode\Debug 2008\Projects\nativeCode\Debug


步骤9:运行java代码

复制代码
package cn.itcast;public class TestNative {        //使用JAVAH命令生成包含native方法定义的C/C++头文件。    //该命令需要使用JDK/bin目录下javah.exe    public native void sayHello();    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        System.loadLibrary("nativeCode");        TestNative tst=new TestNative();        tst.sayHello();    }}
复制代码


步骤10:重启eclisp然后运行 看到数据

                       




常见问题:

1.javah命令找不到,jdk环境没配好重新陪一下

2.三个文件路径找不到,no such file in...  就是刚才上面所提到的将三个文件路径添加到附加目录中

3.E:\Program Files\MyEclipse 10\apache-tomcat-7.0.23\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

   这是因为你生成的.dll文件是32位的,而你的计算机是64的冲突,只需要你在安装vs2008的时候选择64位进行勾选,就可以在 生成--配置管理中选择新建 x64的


4. "应用程序无法启动,因为应用程序的并行配置不正确。请参阅应用程序事件日志,或使用命令行sxstrace.exe工具“这是因为由于应用程序是在32位环境下编译,到64位环境下找不到对应的C++库导致。

只需要下载一个vs2008的运行库,下载安装运行 http://www.microsoft.com/zh-cn/download/details.aspx?id=13276



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 为什么不建议喝小青柑 为何女人不要喝小青柑 重庆小面的做法及凋味料 重庆小面的面条怎么做 重庆小面的做法 重庆小面的培训 麻辣小面 重庆小面图片 蒸馒头放碱面好还是小苏打好 磨砂绒面鞋打理小窍门 蒸馒头放碱面还是小苏打 小当家干脆面 重庆小面做法 泡面小食堂 位面小商人 重庆小面做法配方 绒面鞋怎么清洗小妙招 位面猎奴之小红娘 重庆小面50强第一名 遇见小面 重庆小面高汤配方 重庆小面怎么做 小面汤的做法 重庆面 嘿小面纪录片 猫婆重庆小面 小面做法 重庆小面50强 重庆小面品牌 学重庆小面 学习重庆小面 小面技术培训 正宗重庆小面技术培训 重庆嘿小面 学习重庆小面技术 四川小面技术培训 重庆小面哪里学 重庆小面特色 重庆开面馆 哪里可以学习重庆小面 那里可以学重庆小面