2019独角兽企业重金招聘Python工程师标准>>>

java 调用c/c++

第一步:

编写java程序:如--

public class Pxy {

static{

//加载动态库

System.loadLibrary("pxy");

}

//此方法不用再java中实现

//这里定义的函数我们是希望它能

//在C++中运行--提高程序的效率

// 方法set 是初始化两个参数

public native static  void set(int a,int b);

//计算两个参数的和

public native static int sum();

//从其他地方返回字符串

public native static void setString(String s);

public native static void getString();

public static void main(String[] args){

Pxy p = new Pxy();

p.set(12, 9);

System.out.println("The Result is "+p.sum());

p.getString();

}

}

第二部:

创建一个c/c++的运用程序的头文件

在自己的目录--cmd 进行编写

如:进到自己的类文件中(.class)

用javah 类名

编译成功后:

第三部:

把相应的头文件放进自己的Vc++开发环境的include包中--在后面需要用到 还有jdk 中inclue中 jni.h 和include的其他两个头文件。

第四部:进行编写c/c++项目

你可以打开刚刚你生成的头文件--里面有相应的信息--如我的

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class Pxy */

#ifndef _Included_Pxy

#define _Included_Pxy

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class:     Pxy

* Method:    set

* Signature: (II)V

*/

JNIEXPORT void JNICALL Java_Pxy_set

(JNIEnv *, jclass, jint, jint);

/*

* Class:     Pxy

* Method:    sum

* Signature: ()I

*/

JNIEXPORT jint JNICALL Java_Pxy_sum

(JNIEnv *, jclass);

/*

* Class:     Pxy

* Method:    setString

* Signature: (Ljava/lang/String;)V

*/

JNIEXPORT void JNICALL Java_Pxy_setString

(JNIEnv *, jclass, jstring);

/*

* Class:     Pxy

* Method:    getString

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_Pxy_getString

(JNIEnv *, jclass);

#ifdef __cplusplus

}

#endif

#endif

----------------------------------------

在编写c/c++程序中--你就要根据自己的需要,把相应的函数进行实现。

如我实现了:

#include "Pxy.h"

int i=0,j=0;

JNIEXPORT void JNICALL Java_Pxy_set(JNIEnv *, jclass, jint a, jint b){

i=a;j=b;

}

JNIEXPORT jint JNICALL Java_Pxy_sum(JNIEnv *, jclass){

return i+j;

}

JNIEXPORT void JNICALL Java_Pxy_getString(JNIEnv *, jclass){

printf("\n");

printf("我的名言:风雨无阻--艳丽人生");

return ;

}

这几个方法----

--------------------------------

------------------------------

这已经成功。

转载于:https://my.oschina.net/u/617513/blog/86324

java 调用c/c++相关推荐

  1. eclipse java调用c 代码吗_linux下通过eclipse开发用java调用c程序的方法

    linux下通过eclipse开发用java调用c程序的方法: 1.先建立好java工程并建立java文件如下: public class testso {     static {         ...

  2. Java调用C/C++编写的第三方dll动态链接库(zz)

    这里主要用的方法是JNI.在网上查资料时看到很多人说用JNI非常的复杂,不仅要看很多的文档,而且要非常熟悉C/C++编程.恐怕有很多人在看到诸如此类的评论时已经决定绕道用其他方法了.本文将做详细的介绍 ...

  3. 使用JNA,让java调用原生代码

    JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...

  4. java无阻塞执行脚本,JAVA调用Shell脚本-及阻塞的解决方法

    JAVA调用Shell脚本--及阻塞的解决办法 用java调用shell,使用 Process p=Runtime.getRuntime().exec(String[] cmd); Runtime.e ...

  5. Java 调用Oracle的存储过程

    2019独角兽企业重金招聘Python工程师标准>>> 1.创建存储过程的语句: 1.表结构:①:create table TESTA(A_ID VARCHAR2(10) not n ...

  6. Java调用ocx控件以及dll

    2019独角兽企业重金招聘Python工程师标准>>> http://lvqingboy-163-com.iteye.com/blog/769358 通过Java调用OCX控件有几种 ...

  7. java调用cd传输_Java调用Linux命令(cd的处理)

    一.Java调用Linux系统的命令非常简单 这是一个非常常用的调用方法示例: 1 publicString executeLinuxCmd(String cmd) {2 System.out.pri ...

  8. 用Java调用WebService

    这是一个用Java调用C#版WebService接口的例子: C#接口: Java代码 <SPAN style="FONT-SIZE: 11px"> using Sys ...

  9. pytorch移动端教程 Java调用libtorch

    将模型转为libtorch模型之后 剩下的就是移动端是事情了 也就是使用java调用模型因为 libtorch 支持移动端且支持java调用 其实你使用java再电脑做做测试最好 但是不得不说libt ...

最新文章

  1. 具有Spring的简单工作流引擎
  2. 网站性能Web压力测试工具webbench
  3. c++语言自定义操作符,C++11新特性之自定义字面量
  4. excel怎么批量插行_批量制作anki卡片最易上手方法
  5. Cisco网络管理的35个常见问题及解答
  6. 为什么会自动打开Nautilus文件管理器?
  7. python seaborn 散点图矩阵_初学pandas与seaborn(六)制作散点图矩阵,用python
  8. 加壳及脱壳《逆向工程》
  9. 【quartus】用原理图输入法设计4位全加器
  10. 马云收购恒生电子几大关键问题
  11. MySQL基础 - 简单查询
  12. html 文字段后间距怎么设置,p字间距 html段落内文字设置字间距间隔
  13. 保姆式RecyclerView下拉刷新、上拉加载更多Kotlin
  14. 晋拓股份上交所上市:市值26亿 张东家族企业色彩浓厚
  15. JAVASE IO流,文字不多,代码为主,自学用,谨慎借鉴,有错误请指正
  16. ACP学习笔记(云计算)附题
  17. BZOJ1707:[Usaco2007 Nov]tanning分配防晒霜
  18. Spring官网查找配置文件
  19. mysql using mrr_MySQL 的 MRR 到底是什么?
  20. html网页制作演讲,HTML网页制作讲解.ppt

热门文章

  1. Java入门系列-16-继承
  2. trunk、svi和以太通道
  3. HDU 3157 Crazy Circuits(有源汇上下界最小流)
  4. Bootstrap3.1开发的响应式个人简历模板
  5. 微软经典案例系列课程(视频课程讲师:杨丹)
  6. [转[c++]从int转换成string
  7. BS文件夹上传操作(二) ——基本功能实现
  8. mysql基本语句集合
  9. CentOS 7 yum源安装Nginx
  10. Python机器学习入门资料整理