java 调用C++
来源:互联网 发布:linux init 服务 启动 编辑:程序博客网 时间:2024/06/15 12:37
首先确保环境变量设置正确。
(1)首先是在java中需要完成的工作
testdll.java
public class testdll{static{ try{ System.loadLibrary("goodluck"); } catch(Exception e){ }}public native static int get();public native static void set(int i);public static void main(String[] args){testdll test = new testdll();test.set(10);System.out.println(test.get());}}在cmd下先用javac把testdll编译成.class。再javah生成testdll.h
testdll.h文件
/* DO NOT EDIT THIS FILE - it is machine generated */#include "jni.h"/* Header for class testdll */#ifndef _Included_testdll#define _Included_testdll#ifdef __cplusplusextern "C" {#endif/* * Class: testdll * Method: get * Signature: ()I */JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass);/* * Class: testdll * Method: set * Signature: (I)V */JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint);#ifdef __cplusplus}#endif#endif
(2)编写dll(网上好多教程)
打开vc创建win32控制台程序时在向导中选择dll。
首先在jdk的include文件夹中找到jni.h和jni_md.h放到工程的目录下。再添加testdll.h
对testdll.h的实现testdll.cpp
#include "stdafx.h"#include "testdll.h"int i = 0;JNIEXPORT jint JNICALL Java_testdll_get(JNIEnv *, jclass){return i;}JNIEXPORT void JNICALL Java_testdll_set(JNIEnv *, jclass, jint j){i=j;}编译后。把生成的dll和.class放在一起。在cmd下java testdll就行了。
- java调用C语言
- java调用c
- 实现java调用c
- Java调用C/C++
- C调用JAVA
- C/C++调用Java
- java调用C
- java调用c、c++
- Android C调用Java
- Java调用C JNI
- java调用c程序
- Java调用C/C++
- Java调用C语言
- android java 调用 c
- java 调用C/C++
- jni c调用java
- C调用Java
- Java调用C语言
- LoadRunner字符串编码转换的函数lr_convert_string_encoding
- 苹果,谷歌浏览器对设置了100%的DIV层宽度不能自适应,部分网页被隐藏,解决办法!
- Linux下多线程查看工具(pstree、ps、pstack)
- Android ListView 重复调用getView问题
- VC2008中MFC使用GDI+
- java 调用C++
- error LNK2005的另一种情况
- 第九周实验报告 任务2 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- LR中Lr_save_string()函数和Itoa()函数的使用
- 第九周实验报告(1)
- Android如何防止apk程序被反编译
- 第九周任务报告一
- 第七周 2-1
- mongodb