jni c java互相调用_通过JNI实现Java和C++的相互调用
评论
# re: 通过JNI实现Java和C++的相互调用
2008-07-29 14:14
Always BaNg.
不错,把字符转换也一并讲了吧,比如UTF-8的处理,USC-2与MBCS转换等。 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-07-29 14:17
role0523
你是指Java和C++之间的字符转换?
目前还没有研究过字符转换。
回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-07-31 23:58
coldsummer
如果是现成的dll呢?比如某硬件提供的开发dll开发包,我如何调用? 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-08-01 00:05
role0523
@coldsummer
由于JAVA调用C++需要一定的格式,比如在JAVA中声明native方法,然后通过javah生成一个头文件,然后写cpp文件,但必须实现这个头文件中声明的JNIEXPORT方法。这些方法是Java调用C++的入口。所以在这些方法内部填写对你的DLL的调用即可。 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-08-26 17:14
lfking
你的这个JAVA调用C++的例子,我试了一整天,没试明白!~~
在最后编译成DLL文件时老是报错,不知道是怎么回事!~~~
错误代码如下:请你帮分析一下!谢谢!~
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2144: syntax error : 'void' should be preceded by ';'
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2146: syntax error : missing ';' before identifier 'Java_org_druze_test_TestNative_sayHello'
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2182: 'JNICALL' : illegal use of type 'void'
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2065: 'JNIEnv' : undeclared identifier
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2065: 'env' : undeclared identifier
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2065: 'jobject' : undeclared identifier
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2146: syntax error : missing ')' before identifier 'obj'
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2078: too many initializers
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(5) : error C2059: syntax error : ')'
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(6) : error C2143: syntax error : missing ';' before '{'
c:\documents and settings\william\my documents\visual studio 2005\projects\nativecode\nativecode\source.cpp(6) : error C2447: '{' : missing function header (old-style formal list?)
Generating Code...
生成日志保存在“file://c:\Documents and Settings\william\My Documents\Visual Studio 2005\Projects\NativeCode\NativeCode\Debug\BuildLog.htm”
NativeCode - 13 个错误,0 个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过 ==========
回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-08-26 17:38
role0523
你没有指定jni.h,jni_md.h的include path,以及 jvm.dll的路径,具体参考文章后半部分 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-08-27 10:24
lfking
你说要指定jni.h 和 jni_md.h的include path 这个我都做了,就是少做一个JVM.DLL的路径,试过了,还是一样的错误!~
我做的是JAVA 连接 C++ 需要做这个JVM.DLL的路径吗? 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-08-27 10:46
role0523
sorry, jvm.dll不用指定,因为我们这里不需要它。
这样好了,你把org_druze_test_TestNative.h和jni.h复制到source.cpp相同的目录下,将#include 修改为#include "jni.h" 试试看。
你的问题是jni.h的头文件没有在头文件的搜索路径当中。 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-08-27 12:01
lfking
我按照你上面写的步聚建立一个WIN32的工程,建好以后,会自动建立一个stdafx.h的头文件和stdafx.cpp文件!然后运行source.cpp的时候提示错误说必须要用stdafx.h这个头文件,加上去以后就出现这些错误了!
唉!~把jni.h放到source.cpp同一个目录下了,还是不行!~~
我留个QQ号给你吧,Q上聊!47145748!
你这BOLG上面不能发图片!
回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-08-27 12:04
lfking
vc以前从来没接触过,只是听说过!所以用起来有点愚纯!~~抱歉!~~ 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-08-27 15:12
role0523
你把stdafx.h的头文件和stdafx.cpp删除掉吧 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-08-28 10:31
lfking
无语了都.....
如果把stdafx.h和stdafx.cpp删除的话,会提示错误,说没有加载stdafx.h文件。
大哥,这个例子你试过没啊??是否成功了?你那个版本的VC??我是用VC2005做的! 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-08-28 11:00
role0523
就如我文中所说,我用的VS2008,VC6,codeBlocks.我没搞定,不会写东西的。你的问题在于你对C++的编译器不是很熟悉,这我帮不了你。
BTW:如果把stdafx.h和stdafx.cpp删除的话,会提示错误,说没有加载stdafx.h文件。
那是你的某个地方#include了这个文件,OK? 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2008-08-28 14:53
lfking
7.编译,生成NativeCode.dll,并将其copy到环境变量PATH的路径下。
10.注意NativeCode.dll必须放置在java命令能访问的路径中。
这个不是很了解。能不能在说的具体点!
我是把NativeCode.dll放在与TestNative.java文件同一个目录下! 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2008-08-28 14:58
role0523
NativeCode.dll是由java.exe->jvm.dll->NativeCode.dll这样调用的。你把NativeCode.dll放到与java.exe同目录下,OK?
回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2009-05-21 18:10
Necho
完全按照楼主的做法结果确报这个错误,请楼主帮我看下吧
First-chance exception at 0x00411a20 in NativeCode2.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x00411a20 in NativeCode2.exe: 0xC0000005: Access violation reading location 0x00000000. 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2009-05-21 18:21
Necho
补充一下 应该就是不能findclass 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2009-05-21 18:24
Necho
如果可以的话 请加我MSN:necho_leco@yhotmail.com
或者QQ :55128128
想向你请教,谢谢~! 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2009-05-22 10:19
Necho
测试成功了 感谢LZ提供这么详细的说明 谢谢~~!! 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用[未登录]
2009-09-04 14:43
阿飞
楼主,请问下:我在VC6。0控制台下可以加载JAVA虚拟机了,为什么到了VC6.0的MFC下用同样的方法加载不了(编译不报错,但是调试的时候通不过),盼回复,谢谢! 回复 更多评论
# re: 通過JNI實現Java和C++的相互調用[未登录]
2009-12-18 13:40
sunny
樓主:
請問我在編譯C++時,出現這個錯誤訊息:
error C2065: 'JNI_VERSION_1_6' : undeclared identifier
我使用的是JDK1.6 回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2009-12-18 23:39
nobody
@sunny 看看这个声明在哪个头文件里面,把它include进来
回复 更多评论
# re: 通过JNI实现Java和C++的相互调用
2010-01-09 11:52
next
@lfking
朋友,这个连接的最下方是你要的答案
http://www.experts-exchange.com/Programming/Languages/CPP/Q_22048796.html
引用:
phongtran72:
Well, this generates error:
#include "jni.h"
#include "stdafx.h"
#include
#include
And this is solution:
#include "stdafx.h"
#include
#include
#include "jni.h" 回复 更多评论
jni c java互相调用_通过JNI实现Java和C++的相互调用相关推荐
- java socket 远程调用_使用Socket反射Java流操作进行方法的远程调用(模拟RPC远程调用)...
写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客 ...
- java 动态链接_菜鸟提问:java 调用不了Windows动态链接库方式出错
调用方式:LedControl INSTANCE = (LedControl) Native.loadLibrary("LEDSender2010",LedControl.clas ...
- java future用法_纯干货:Java学习过程中的21个知识点和技术点
我们在Java学习过程中要学会抓重点,善于总结,Java学习过程中常见的21个知识点和技术点你知道吗?下面和千锋广州小编一起来看看吧! 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识 ...
- java线程堆栈_深入JVM剖析Java的线程堆栈
在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因.在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术.在线程堆栈中存储的信息,通常远超出你的想象 ...
- java python算法_用Python,Java和C ++示例解释的排序算法
java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...
- java 判断类型_如何快速入门Java编程学习(干货)
一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...
- java必读书籍_最佳5本Java性能调优书籍–精选,必读
java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...
- 做Java头发少_这35个Java代码优化细节,你用了吗
链接:https://www.jianshu.com/p/6e472304b5ac 前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有 ...
- java static关键字_好程序员Java教程分享static关键字的理解
好程序员Java教程分享static关键字的理解,static关键字含义可以理解为静态的. 1. 当其修饰属性时,该属性为整个类公有,所有的对象操作的都是同一个静态属性.所以调用时应该使用类名去调用, ...
最新文章
- 大数据在犯罪预防中有独特价值
- 【JOURNAL】搭配/ IKEA Match
- 2021HDU多校8 - 7059 Counting Stars(线段树)
- php7过滤,PHP7过滤unserialize()
- 网络新潮文化:Wiki不完全手册
- OpenCV学习(27) 直方图(4)
- LeetCode 298. 二叉树最长连续序列(自顶向下)
- (82)Verilog HDL:状态机二段式
- 艰难前行的故事 (《梦断代码》读后感)
- python为什么无法保存然后弹跳出来_python-从字典中弹出键,值对的整洁方法?
- centos ipython tab键上下键不起作用
- PDFLib去水印办法
- 安装程序提示本地计算机已存在源,安装卡巴斯基出现“不能访问Window Installer服务”...
- 虚拟机安装win7时遇到的问题及解决方案
- .bat脚本初体验——使用批处理bat清洗文件名
- Forward(请求转发)和Redirect(重定向)的比较
- 如何将拉勾网(智联招聘)的预览简历导出来
- 用什么软件可以修改PDF文件,软件的操作方法
- Oracle 学习之建表、索引、同义词以及SQL优化
- 解决谷歌浏览器打开后是毒霸浏览器的问题
热门文章
- react学习(8)----数组方法fliter简介
- [css] 检测sass中错误的指令是哪个?
- [css] 写出在不固定宽高的元素在固定高度的情况下水平垂直居中的方法
- 工作312:uni-弹出框显示数据
- 前端学习(2796):实现左侧数据渲染和点击高亮
- 前端学习(2755):配置tabber其他属性
- 前端学习(2682):重读vue电商网站2之前台启动
- 前端学习(2054)vue.js课程介绍
- 前端学习(2012)vue之电商管理系统电商系统之手动为upload组件添加请求头
- 前端学习(220):伪元素选择器