linux下JNI给JAVA传递中文的问题 [问题点数:100分,结帖人dic_walter]

Bbs1
本版专家分:0
结帖率 90.72%
Bbs5
本版专家分:2511
Blank
蓝花 2007年8月 Linux/Unix社区大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs2
本版专家分:302
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs6
本版专家分:9837
Blank
红花 2007年8月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2007年9月 Linux/Unix社区大版内专家分月排行榜第二
2007年7月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2010年6月 Linux/Unix社区大版内专家分月排行榜第三
2008年4月 Linux/Unix社区大版内专家分月排行榜第三
2008年3月 Linux/Unix社区大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:302
Bbs1
本版专家分:10
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:10
Bbs2
本版专家分:302
Bbs1
本版专家分:0
Bbs2
本版专家分:302
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Linux下Java IO 中文问题
Linux下Java IO <em>中文</em><em>问题</em>rnrnlinux系统:FC3rnJDK 1.5rnrn<em>问题</em>描述:rnrn不能创建<em>中文</em>文件,不能删除<em>中文</em>文件,把<em>中文</em>目录当成文件(即无法用isDirectory()判断).rn这个<em>问题</em>折腾了很多天,网上也没找到很好的解决方法.rnrn请高手帮忙.急用,一旦解决立即结贴给分.
还是jni中文问题
我的操作系统是solaris8,标准crn我查了以前一些有关这方面的帖子,但还是无法解决rn我只要<em>java</em>中显示c程序中返回的<em>中文</em>字符,但无法正确显示rn传出:rnjstring jline = (*env)->NewStringUTF(env, char_line);rnrn请高手在给讲讲,能给两行例子程序就最好了。rnrn谢谢!!rn
JNI的中文问题
我用JNI调用已经存在的DES加密算法DLL,rnrn所以我必须实现一个DLLrnrn使得JAVA与已经存在的DLL通信rnrn用JAVA调用DLL 加密时只有<em>中文</em>有<em>问题</em> rnrn加密后的密文与VC程序加密的密文 不一样rnrn所以我不能正确解密VC程序所加密的<em>中文</em>rnrn这个如何解决呢?
JNI中文问题
各位大侠:rn 在JNI 中将<em>中文</em>字符传给VC,VC不能正确显示(printf).rn VC将<em>中文</em>字符返回给JAVA时, 在JAVA中也无法显示.rn rnimport <em>java</em>.io.*;rnimport <em>java</em>.util.*;rnrnclass JniTest rnrn public static native String webcall13(String prompt);rn rn static rn System.loadLibrary("siuweb");rn rn public static String GBToUnicode(String strIn)rn rn String strOut = null;rn if(strIn == null || (strIn.trim()).equals(""))return strIn;rn tryrn byte[] b = strIn.getBytes("ISO8859_1"); rn //byte[] b = strIn.getBytes("GB2312");rn //byte[] b = strIn.getBytes("UTF8");rn //byte[] b = strIn.getBytes("ISO-8859-1");rn rn strOut = new String(b,"GBK");rn //strOut = new String(b,"gb2312");rn rn catch(Exception e)rn return strOut;rn rnrn public static String UnicodeToGB(String strIn)rn rn byte[] b;rn String strOut = null;rn if(strIn == null || (strIn.trim()).equals(""))rn return strIn;rn tryrn b = strIn.getBytes("GBK");rn strOut = new String(b,"ISO8859_1");rn catch(UnsupportedEncodingException e)rn return strOut;rn rn rn public static void main(String[] args)rn rn JniTest test = new JniTest();rn rn //System.getProperties().list(System.out);rn test.webcall1(); rn int count = test.webcall2(2,5);rnrn String str_tmp;rn str_tmp = "JA你webcall3:";rn String str_input;rn str_input = UnicodeToGB(str_tmp);rnrn String input = test.webcall13(str_input);rn /* System.out.println("C return string : " + input); */rn String str_output;rn str_output = GBToUnicode(input);rn System.out.println("C return Unicode string : " + str_output);rn rnrnrnJNIEXPORT jstring JNICALL rnJava_JniTest_webcall13 (JNIEnv *env, jclass obj, jstring a)rnrn jstring jstr;rn char greeting[100];rnrn const char *str = (*env)->GetStringUTFChars(env,a,0);rn wprintf(L"C wprintf <em>java</em> string: %s\n", str);rn printf("\nC printf <em>java</em> string: %s\n", str);rn (*env)->ReleaseStringUTFChars(env, a, str);rnrn greeting[0]='\0';rn strcpy(greeting,"abk中cedasdfasd中华人民共和fasdfksdjfhlas");rn jstr = (*env)->NewStringUTF(env,greeting);rn return jstr;rnrnrn
JAVA与C++关于JNI中文字符串操作问题???
不知怎样把jbyteArray型转为jstring
jni传递对象数组
可在<em>jni</em>层返回应用层一个对象数组,包括字符串、整数、小数的成员变量
JNI 传递和返回基本参数
本文件是 JNI <em>传递</em>和返回基本参数的 Demo,详细介绍见博客:https://blog.csdn.net/u011520181/article/details/79765336,无法资源分设置 0 分,也可以去博客下面的 github 地址下载
Jni 传递 jobjectArray
各位大哥,大姐们。请帮帮忙吧。rn能否详细的说明一下<em>jni</em><em>传递</em>jobjectArray参数的方法。rn能否给个详细的例子。
JNI传递字符串数组J-StringArray
编译器对语言的转换以寻地址的方式进行序列化和反序列化,因此对于不固定类型或者不显示给出大小的对象不能直接解析,所以没有出现jstringArray这样的类型,只能一个一个编写。         参考链接:安卓开发提高篇-Jarray          1.使用的C++函数 //调用标定相机的函数!wishchin !!! int CFrameProcess::CamCabPro(
JNI类型传递
JNI复杂类型转换
jni数值传递
<em>jni</em> <em>java</em>和C之间的值<em>传递</em>(int String int[])
Android JNI 中文字符传递
JNI使用时,需要<em>传递</em><em>中文</em>,遇到乱码<em>问题</em>,多次尝试失败。遂仔细研究了下编码格式转换相关内容。 本文介绍了C语言中的汉字<em>传递</em>到<em>java</em>端的实现方法,以及<em>java</em>中的汉字<em>传递</em>到C端的实现方法。 另附demo下载。
jni文件传递方法参数
使用<em>jni</em>从<em>java</em><em>传递</em>多个参数到c++时,如果是多个参数,当是string类型时,参数之间用;分割 [code=&quot;c++&quot;] void sendToAndoridAdmobId(const char* id) { JniMethodInfo methodInfo; if (!JniHelper::getStaticMethodInfo(...
jni 中文
char* jstringToWindows( JNIEnv *env, jstring jstr ){  int length = (env)-&amp;gt;GetStringLength(jstr ); const jchar* jcstr = (env)-&amp;gt;GetStringChars(jstr, 0 ); char* rtn = (char*)malloc( length*2+1 ); i...
java jni 传递汉字参数,读写ini
<em>java</em> <em>jni</em> <em>传递</em>汉字参数,包括<em>java</em>传入dll 从dll传出到<em>java</em> 读写ini 包括全部 <em>java</em> 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。
Java JNI 入门篇——传递数组与修改数组
Java JNI 入门篇——<em>传递</em>数组与修改数组
java jni 传递汉字参数,包括 in out
<em>java</em> <em>jni</em> <em>传递</em>汉字参数,包括<em>java</em>传入dll 从dll传出到<em>java</em> 包括全部 <em>java</em> 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。
Java JNI 类类型参数如何传递?
我现在用JAVA写一个程序调用现有VB编写test.dll.因为test.dll不符合JNI编写规范,所以在中间还必须编写一个VC++编写的jtest.dll.rn一部分函数已经能够成功调用,举个例子说明:rntypedef bool (_stdcall *WOCRInit)(int iOcrType,int iHZtype,int iCharacterSet, int res1 );rnJNIEXPORT jboolean JNICALL Java_DLLBean_WOcrInit(JNIEnv *env, jclass obj, jint iOcrType, jint iHZtype, jint iCharacterSet, jint res1)rnrnrn HINSTANCE hTest;rn WOCRInit wocrInit;rn bool bo;rn hTest=LoadLibrary("OcrWencui.dll");rn wocrInit =(WOCRInit)GetProcAddress(hTest,"WOcrInit");rn     bo = wocrInit(iOcrType,iHZtype,iCharacterSet,res1);//调用 rn return bo;rnrn提问:rnpublic native static boolean WOcrStart(int Bitmap,Rectangle Rect);//Rectangle为四边形类rn这个函数中的Rectangle Rect参数如何<em>传递</em>?rn如何实现:rntypedef bool (_stdcall *WOcrStart)(……)中的参数列表rnWOcrStart(……)中的参数列表rnrntest.dll关于这两个函数的接口定义为rnVC: extern "C" BOOL _stdcall EXPORT WOcrStart (HBITMAP Bitmap, RECT* Rect);rn请高手明释,谢谢rn
Java层与JNI层对象的相互传递
<em>java</em>层jar包: package com.kaixin; public class Java2Jni{ public static class Data{ public int nSrcLen; //[IN] public byte[] bSrcData; //[IN] public int nDstLen; ...
JNI Java 入门篇——传递&&接收基本数据类型
最近在学习JNI Java基础,不了解基本开发流程的同学请参考JNI Java入门篇——HelloWorld. 下面直接上主要代码: 1.PrimaryJNI.<em>java</em>package com.example.<em>jni</em>;public class PrimaryJNI { static { System.loadLibrary("primary<em>jni</em>"); } p
javalinux下中文环境问题
System.getProperty("file.encoding")运行显示是jdk的字体编码还是系统的字体编码?rn 怎样设置<em>java</em>在<em>linux下</em>的<em>中文</em>环境?
JNI中文字符转换问题,MultiByteToWideChar在linux下如何用?
我用int LenOfSM1=MultiByteToWideChar(CP_UTF8,0,szStr,-1,UNmessage,LENGTH)去转换szStrrn编译时出错如下:rnmongate.c: In function `Java_mongate_MongateSendSms':rnmongate.c:117: `CP_UTF8' undeclared (first use in this function)rnmongate.c:117: (Each undeclared identifier is reported only oncernmongate.c:117: for each function it appears in.)rnrn好象是没包含哪个头文件?把CP_UTF8换成CP_ACP也不行rnrn看到网上有另一函数,加进去编译时也出错rn///////////////////////////////////////////////////////////////////////////////rn//辅助函数:char* jjstringToChar(JNIEnv* env,jstring jstr);rn//功能:将Java的Unicode字符串转化成本地字符数组;rn///////////////////////////////////////////////////////////////////////////////rnchar* jstringToChar(JNIEnv* env, jstring jstr)rnrn char* rtn = NULL;rn jclass clsstring = env->FindClass("<em>java</em>/lang/String");rnrn //new encode string default "GBK"rn jstring strencode = env->NewStringUTF(CURRENT_ENCODE);rn jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(L<em>java</em>/lang/String;)[B");rnrn //call String.getBytes method to avoid incompatible migrating into solarisrn jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr,mid,strencode);rnrn jsize alen = env->GetArrayLength(barr);rn jbyte* ba = env->GetByteArrayElements(barr,JNI_FALSE);rnrn if(alen > 0)rn rn rtn = (char*)malloc(alen+1); //new char[alen+1];rn memcpy(rtn,ba,alen);rn rtn[alen]=0;rn rn env->ReleaseByteArrayElements(barr,ba,0);rnrn return rtn;rnrnrn编译时提示:rnmongate.c: In function `jstringToChar':rnmongate.c:35: request for member `FindClass' in something not a structure or unionrnmongate.c:38: request for member `NewStringUTF' in something not a structure or unionrnmongate.c:39: request for member `GetMethodID' in something not a structure or unionrnmongate.c:42: request for member `CallObjectMethod' in something not a structure or unionrnmongate.c:44: request for member `GetArrayLength' in something not a structure or unionrnmongate.c:45: request for member `GetByteArrayElements' in something not a structure or unionrnmongate.c:53: request for member `ReleaseByteArrayElements' in something not a structure or unionrnmongate.c: In function `Java_mongate_MongateSendSms':rnmongate.c:149: warning: passing arg 2 of `jstringToChar' from incompatible pointer typernmongate.c:149: syntax error before ';' tokenrnrn哪位老兄指点一下!rn
传递中文字符串的问题
是这样的:rn在液面之间<em>传递</em>参数时,由于<em>传递</em>了<em>中文</em>,所以要进行编码解码,于是在Web.config中写下了如下:rn rn rnrn但是我发现:在.cs页面<em>传递</em>的<em>中文</em>是进行编码了,而在.aspx中<em>传递</em>的<em>中文</em>却没有变化,也就是说:在后台代码页面通过Response.Redirect()方法 <em>传递</em>的参数进行了编码,[color=#FF0000]而在.aspx中通过却没有编码,因为在.aspx页面上是用Repeater绑定的,第一列是要链接的一列,[/color]如:rnRepeater中的链接列如下:rnrn &Time=">rn rn rn rn其中A是一个<em>中文</em>的参数,请问我该怎么样才能将A进行编码,然后再List.aspx页面进行使用啊?rn
xmlhttp传递中文问题
我在前台页面的<em>java</em>script用rnvar URL = "xmlhttp.jsp?para1=" + vaule1 + "&para2=" + vaule2;rnxmlhttp = new ActiveXObject("Msxml2.XMLHTTP");rnxmlDoc = new ActiveXObject("Msxml2.DOMDocument");rnxmlhttp.Open("POST", URL, false);rnxmlhttp.Send();rnrn方法把para1,para2参数传到后台页面xmlhttp.jsp,用request.getParameter("para1")来接受,英文可以但是传的值是<em>中文</em>的话,会得不到值,怎么办?
变量传递中文问题
各位大虾:rn 下地最近用jsp开发的时候遇到一个怪<em>问题</em>,页面<em>传递</em>需要<em>传递</em>变量,如果变量里是英文字符的话就没什么<em>问题</em>,而变量如果是<em>中文</em>总是得不到字符,这是怎么回事啊?rn 头疼死了!在线等待!!
传递中文问题
各位高手,请帮个忙,我在地址栏里需要<em>传递</em>一个<em>中文</em>变量的另一个页面,但如果是<em>中文</em>就出错,非英文没事,请高手帮忙解答
表单传递中文问题!
两个文件.不能实现<em>中文</em>的<em>传递</em>?查不出<em>问题</em>?请大家帮我看看.rntext.jsp: 表单页面rnrnrnrnrn rn jsp说你好rnrnrnrn rn姓名 : rn rnrnrnrnrnrntext1.jsp:处理页面rnrnrnrnrn rn jsp说你好rnrnrnrn你好 rn rnrn
J2ME中文传递问题
环境:客户端: win98、 jdk1.3.1、 j2me wireless toolkit 1.0.1rn 服务器端:Linux7.1 有<em>中文</em>支持rn目的:服务器端c程序接收客户端<em>java</em>程序<em>传递</em>来的<em>中文</em>并显示出来;rn说明:当客户端用纯<em>java</em>应用程序、服务器端c程序不变能正常显示<em>中文</em>。 rn rn服务器端c程序:rn#include rn#include rn#include rn#include rn#include rn#include rn#include rnrnrnrn#define BUFLEN 4 /*缓冲区尺寸*/rn#define SOCKADDR struct sockaddrrn#define PORT 9696 /*服务器使用的端口号 */ rnrnint main(void) /*主函数*/rnrn int sockfd,socklen,newfd;rn char buffer[BUFLEN];rn rn struct sockaddr_in srv_addr,cli_addr;rn rn fd_set infds;rn int maxfd,n;rn struct timeval tval;rn rn if ((sockfd=socket(AF_INET,SOCK_STREAM,0))0) /*读取客户发送来的信息*/rn rn printf("buffer=%s\n",buffer);rn rn rn rn close(newfd);rn rnrnrn客户端<em>java</em>程序:rnrnpackage Test;rnrnimport <em>java</em>x.microedition.lcdui.*;rnimport <em>java</em>x.microedition.midlet.*;rnimport <em>java</em>x.microedition.io.*;rnimport <em>java</em>.io.*;rnrnpublic class test1 extends MIDlet implements CommandListener rnrn rn static final String temp="你好";rn private String serverUrl = "socket://61.188.177.33:4445";rn StreamConnection c= null;rn DataOutputStream output;rn public test1() rn rn rnrn rn public void startApp() rn tryrn System.out.println("begin");rn c=(StreamConnection)Connector.open(serverUrl);rn System.out.println("Created Socket\n");rn output=new DataOutputStream(c.openDataOutputStream());rn System.out.println("Created output stream");rn byte bufout[]=new byte[40];rn bufout=temp.getBytes() ;rn output.write(bufout,0,bufout.length );rn //output.writeUTF(temp );rn //output.writeChars(temp );rn rn System.out.println("send output:"+bufout.length);rn rn c.close() ;rn rn catch(IOException e)rn e.printStackTrace() ;rn rn rn rnrn public void commandAction(Command c, Displayable s) rn rn rnrnrnrnrnrnrnrnrnrnrnrnrnrn
页面传递中文问题
asp.net页面之间<em>传递</em><em>中文</em>时,编码转换出错,aspx和vb都是使用utf-8编码,例如<em>中文</em>“办公软件”要从一个页面传送到另一个页面时,在URL地址栏里边将转码为 %E5%8A%9E%E5%85%AC%E8%BD%AF%E4%BB%B6,但在搜索引擎里边输入,“办公软件”将转为%B0%EC%B9%AB%C8%ED%BC%FE。rn换句话,如果使用http://www.baidu.com/s?wd=%E5%8A%9E%E5%85%AC%E8%BD%AF%E4%BB%B6,将是乱码;rn使用http://www.baidu.com/s?wd=%B0%EC%B9%AB%C8%ED%BC%FE,将搜索到“办公软件”的相关内容。rn希望高手能帮忙指导,解决。rn分不够,可以加,谢谢了!
中文传递问题
我要用rn这种方式传值,strbkname的值是一个大五码的值,传到下一个页面要求得到正确的显示。rn我的运行环境是Webshpere,语言为环境为繁体。rn查看相关资料无法解决rn请帮忙!
页面中文传递问题
页面设置的编码方式为UTF-8, 提交<em>中文</em>时,在各个页面之间的<em>传递</em>时按照ISO8859-1进行的, 在接受时要对其转码才能正常显示; for example : String str = new String(request.getParameter(&quot;str&quot;).getBytes(&quot;ISO8859-1&quot;),&quot;utf-8&quot;); ...
javascript 中文传递问题
通常从前台<em>java</em>script向后台<em>传递</em>值,如果<em>传递</em>的值是<em>中文</em>类型,则无法<em>传递</em>到后台,现在有一种解决办法,可以从后台的<em>java</em>script代码中向后台 <em>传递</em><em>中文</em>: 解决方法: 下面是接受部分解码方法 : String fontwords=request.getParameter( &quot;changefontname&quot; ); // fontwords=<em>java</em>.net.U...
中文传递问题(求解)
代码:选用 rn实现1:rnrnrn实现2:rnstring sParamValue = HttpUtility.UrlEncode("管理员");rnstring sParamValue = HttpUtility.UrlDecode(Request.QueryString["author"].ToString());rn实现3:rnServer.UrlEncode(Request.QueryString("author"));rn上诉对整个不用 我想是直接在页面中传值 但信息中包含大量的<em>中文</em> 请问有没有什么方法可以直接rn在页面层<em>传递</em>rn注: 该为DataGrid模版列rn
url传递中文问题
如何在html中对<em>中文</em>链接进行编码,如:rnrn20040603123628交易中心网上集中交易系统合同rnrn别告诉我用 Server.UrlEncode等rn因为我没用后台,只是链接到本地目录的一个文件,我希望能在页面实现rnrn
Linux下java使用JNI调用C++
Linux下<em>java</em>使用JNI调用C++ 1.JNI介绍 JNI即Java Native Interface(Java本地接口),是一个协议,主要作用为:实现Java调用c/c++代码(类库),或者C/C++调用Java代码 2.准备JNI 先用<em>java</em>h,根据.<em>java</em>文件生成.h头文件,然后用C++实现这个接口 2.1先在目录下创建JNI.<em>java</em>文件 内容如下 //JNI.<em>java</em>文件 pu...
在Linux下用java jni调用c++文件
准备工作: 保证linux系统已经安装了g++,安装了<em>java</em> 的jdk并进行了系统环境变量的配置。(相关配置资料非常多,渴望上查阅) 简单的旅程: 1 首先创建一个简单的<em>java</em>类,文件名为Hello.<em>java</em>: public class Hello { static { try{ System.loadLibrary(“hello”); }catch(UnsatisfiedLinkError ...
3 linux下jni的使用
一 配置linux环境并测试1 <em>java</em>环境 http://www.jianshu.com/p/e5d8b62aed89 2 linux怎么跑跑<em>java</em>程序 2.1 错误代码 文件名与类名要相同public class HelloWorld { public static void main(String args[]) { System.out.println("H
linux下实现jni的方式
<em>linux下</em>实现<em>jni</em>的方式 用JNI实现一个经典的“Hello World”程序。该程序在Java中通过JNI调用c函数实现“Hello World”的输出。创建该程序分为以下步骤: 1、创建一个Java程序(HelloWorld.<em>java</em>)定义原生的c/c++函数。 创建<em>java</em>文件,声明native方法 2、用<em>java</em>c编译HelloWorld.<em>java</em>生成HelloWorld.cl
Linux下JNI尝试
Windows下Java调用本地方法采用的是dll(Dynamic Link library),而Linux下用的是.so文件,以下描述下调用的步骤。 假设我在/home/jreffery/JavaTest/lib下,下面有目录结构cc/appweb/www/JniTest.<em>java</em> 1.编写包含native方法的Java类: package cc.appweb.www; publ
Linux下JNI使用
最近在Hadoop里要用JNI调一个本地的C程序。
在LINUX下使用JNI出错
1. 先写<em>java</em>程序rnrnclass HelloWorld rnrnrnrn public native void displayHelloWorld();rnrn static rnrn System.loadLibrary("hello");rnrn rnrn public static void main(String[] args) rnrn new HelloWorld().displayHelloWorld();rnrn // System.getProperties().list(System.out);rnrn rnrnrnrn# <em>java</em>c HelloWorld.<em>java</em>rnrn# <em>java</em>h HelloWorldrnrnrn2. 写C程序rnrn#include rnrn#include "HelloWorld.h"rnrn#include rnrn rnJNIEXPORT void JNICALL rnrnJava_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) rnrnrnrn printf("Hello world!\n");rnrn return;rnrnrnrnrn#gcc hello.c --share -I. -I/usr/local/j2sdk1.4.2_08/include/ -I/usr/local/j2sdk1.4.2_08/include/linux -o libhello.sornrn生成so文件成功。rnrn3. 设环境变量rnrnexport LD_LIBRARY_PATH=/home/mlx/<em>jni</em>(假设程序都在/home/mlx/<em>jni</em>/)rnrnrn最后运行的时候说:UnsatisfiedLinkError,大概是cannot open shared object filern参照了很多网上的例子,别人都成功了,为什么我会报这个错?:(
Linux下JNI调用
整个实现过程可以分为五步来完成: 1)写一个声明了native的Java文件: package example; public   class  TestJNI  {      static   {         System.loadLibrary( &quot; test &quot; );     }           ...
关于JNI中文处理的问题
JNIEnv::NewStringUTF/JNIEnv::GetStringUTFChars等方法到底为我们做了什么?rn为什么rnjobject obj = env->NewObject(cls, mid, env->NewStringUTF("中国"));rn到<em>java</em>那边System.out.println就成了乱码呢?GetStringUTFChars也一样。rn不懂,哪位大侠能帮忙解释一下。
java中文本行值得传递
Javarnrn在同一个工程下。我在A包的 a1类下创建了一个文本行,想要在B包的b1类下获取这个文本行的值该怎么做?
高分求助---jni如何处理java二维数组的传递问题
高分求助---<em>jni</em>如何处理<em>java</em>二维数组的<em>传递</em><em>问题</em>。
java本地接口 jni问题
翻开<em>java</em>里对object定义的文件,我看到很多nativ方法rn 如:public class Object rnrn private static native void registerNatives();rn static rn registerNatives();rn rn public final native Class getClass();rn public native int hashCode();rn protected native Object clone() throws CloneNotSupportedException;rn public final native void notify();rnrn public final native void notifyAll();rnrn public final native void wait(long timeout) throws InterruptedException;rnrnrn但很多介绍<em>jni</em>的入门文章中都说,要用System.loadLibrary("动态连接") 来加载外部逻辑.但我都没找到这个加载呀.rn能不能告诉<em>java</em>是怎么加载这些外部逻辑的呢.rn谢谢先!!
java jni问题
<em>问题</em>描述:最近公司需要用<em>java</em>调用dll,所以我用vc6.0写了个dll,发现在64位的系统调用不了,32位系统可以用,所以我想问下大家,是不是编写的dll有版本之分,如果有,那怎么让写的dll可以在windows平台下基本能用,我是新人,希望大神们指教,谢谢了
JAVA调用JNI问题。。。。
我用JAVA 调用JNI访问DLL 一运行TOMCAT 过会就自动关闭了。JVM虚拟机苯溃 日志如下。请高手解答。谢谢rnrnrn#rn# An unexpected error has been detected by Java Runtime Environment:rn#rn# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0a77fc04, pid=3364, tid=2856rn#rn# Java VM: Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode, sharing)rn# Problematic frame:rn# C [ocr.dll+0x7fc04]rn#rn# If you would like to submit a bug report, please visit:rn# http://<em>java</em>.sun.com/webapps/bugreport/crash.jsprn#rnrn--------------- T H R E A D ---------------rnrnCurrent thread (0x096c5800): JavaThread "Thread-33" daemon [_thread_in_native, id=2856]rnrnsiginfo: ExceptionCode=0xc0000005, reading address 0x00000020rnrnRegisters:rnEAX=0x00000000, EBX=0x00000001, ECX=0x7c92fb71, EDX=0x00000000rnESP=0x0a6af854, EBP=0x0a6af878, ESI=0x00000002, EDI=0x00000005rnEIP=0x0a77fc04, EFLAGS=0x00010202rnrnTop of Stack: (sp=0x0a6af854)rn0x0a6af854: 0a6af884 0a77fcef 0a6af878 096c5800rn0x0a6af864: 2720b6e8 0a7b3fd8 00000000 00000000rn0x0a6af874: 00000002 0a6af898 0a77fe44 0a704469rn0x0a6af884: 0a6afb64 0a77fe61 0a6af898 2720b6e8rn0x0a6af894: 00000000 0a6af8d8 0095abc1 096c58e8rn0x0a6af8a4: 0a6af8ec 0a6af8e8 0a6af8b0 00000085rn0x0a6af8b4: 22a04f48 0a6af8b0 00000000 0a6af8ecrn0x0a6af8c4: 2720b968 00000000 2720b6e8 00000000 rnrnInstructions: (pc=0x0a77fc04)rn0x0a77fbf4: fc 85 f6 7c 24 46 33 db 8d 3c 9b a1 08 80 78 0arn0x0a77fc04: 8b 44 b8 0c ff d0 a1 08 80 78 0a 8b 44 b8 04 50 rnrnrnStack: [0x0a660000,0x0a6b0000), sp=0x0a6af854, free space=318krnNative frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)rnC [ocr.dll+0x7fc04]rnC [ocr.dll+0x7fe44]rnj com.validate.mark.captcha.freeLib(L<em>java</em>/lang/String;)V+0rnj com.validate.mark.ValidateFanctory.returnValidate(L<em>java</em>/lang/String;I)L<em>java</em>/lang/String;+100rnj com.validate.mark.ValidateFanctory.crack(L<em>java</em>/io/InputStream;I)L<em>java</em>/lang/String;+78rnj com.validate.sendAll.zblog.ZblogSend.sendGoZblog(L<em>java</em>/lang/String;L<em>java</em>/lang/String;L<em>java</em>/lang/String;L<em>java</em>/lang/String;L<em>java</em>/lang/String;)V+182rnj com.validate.sendAll.zblog.ZblogSend.send(II)V+112rnj com.validate.sendAll.zblog.ZblogSend.run()V+58rnj <em>java</em>.lang.Thread.run()V+11rnv ~StubRoutines::call_stubrnrnJava frames: (J=compiled Java code, j=interpreted, Vv=VM code)rnj com.validate.mark.captcha.freeLib(L<em>java</em>/lang/String;)V+0rnj com.validate.mark.ValidateFanctory.returnValidate(L<em>java</em>/lang/String;I)L<em>java</em>/lang/String;+100rnj com.validate.mark.ValidateFanctory.crack(L<em>java</em>/io/InputStream;I)L<em>java</em>/lang/String;+78rnj com.validate.sendAll.zblog.ZblogSend.sendGoZblog(L<em>java</em>/lang/String;L<em>java</em>/lang/String;L<em>java</em>/lang/String;L<em>java</em>/lang/String;L<em>java</em>/lang/String;)V+182rnj com.validate.sendAll.zblog.ZblogSend.send(II)V+112rnj com.validate.sendAll.zblog.ZblogSend.run()V+58rnj <em>java</em>.lang.Thread.run()V+11rnv ~StubRoutines::call_stubrnrn--------------- P R O C E S S ---------------rnrnJava Threads: ( => current thread )rn 0x02e58c00 JavaThread "Thread-39" daemon [_thread_blocked, id=2384]rn 0x096c3400 JavaThread "Thread-38" daemon [_thread_in_native, id=3964]rn 0x02e79800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1124]rn 0x02e2c800 JavaThread "Thread-36" daemon [_thread_in_native, id=2576]rn 0x03370c00 JavaThread "MultiThreadedHttpConnectionManager cleanup" daemon [_thread_blocked, id=3000]rn 0x02e97c00 JavaThread "Thread-34" daemon [_thread_in_native, id=4000]rn=>0x096c5800 JavaThread "Thread-33" daemon [_thread_in_native, id=2856]rn 0x09720c00 JavaThread "TP-Monitor" daemon [_thread_blocked, id=3764]rn 0x09720000 JavaThread "TP-Processor4" daemon [_thread_in_native, id=1556]rn 0x09746000 JavaThread "TP-Processor3" daemon [_thread_blocked, id=2216]rn 0x031b1800 JavaThread "TP-Processor2" daemon [_thread_blocked, id=2352]rn 0x02b0e400 JavaThread "TP-Processor1" daemon [_thread_blocked, id=2560]rn 0x02b21c00 JavaThread "http-3388-Monitor" [_thread_blocked, id=3476]
关于JAVA JNI的问题
最近需要用NATIVE 根据网上的例子测试无数次都未能实现rnrn原因总是说当用CL命令生成DLL文件时,找不到stdio.hrnrn尝试将C的头文件放入 又有很多找不到文件rnrn索性不所有头文件放入 答案的某个地方出了错rnrn不知道为什么 请大侠说下rnrn<em>java</em>文件rnclass HelloWorld rn  public native void displayHelloWorld();rn  rn  static rn  System.loadLibrary("hello");rn  rn  rn  public static void main(String[] args) rn  new HelloWorld().displayHelloWorld();rn  rnrnrnC实现rn#include rn#include "HelloWorld.h"rn#include rnJNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)rnprintf("hello");rnreturn;rnrn用<em>java</em>h编译的头文件rn/* DO NOT EDIT THIS FILE - it is machine generated */rn#include rn/* Header for class HelloWorld */rnrn#ifndef _Included_HelloWorldrn#define _Included_HelloWorldrn#ifdef __cplusplusrnextern "C" rn#endifrn/*rn * Class: HelloWorldrn * Method: sayHellorn * Signature: ()Vrn */rnJNIEXPORT void JNICALL Java_HelloWorld_sayHellorn (JNIEnv *, jclass);rnrn#ifdef __cplusplusrnrn#endifrn#endifrnrn用VC++6.0生成DLL文件rn[img]http://www.iteye.com/upload/attachment/68127/fecb432d-328d-3561-ba1e-00f474095b0a.jpg[/img]rnrn请问错在什么地方
NDK开发,从JAVA层传递jbyteArray 到JNI的转换问题
请教一下,我是ANDROID开发新手,现在有一个程序要移植到ANDROID,这个程序有一个接口如下:rnrnvoid sendData(unsigned char * data, int size);rnrn然后我写的JNI接口如下:rnrnsendData(JNIEnv* env, jobject thiz, jbyteArray data, jint size);rnrn这样写对吗? 如果是对的,我怎么把jbyteArray转换成unsigned char * ?rnrnsendData(JNIEnv* env, jobject thiz, jbyteArray data, jint size)rnrn unsigned char * buff = new unsigned char[size];rnrn // 这里怎么把data转换成 unsigned char *并复制到 buff里面去?rn
JNI传递十六进制字符串参数问题
<em>java</em>里<em>传递</em>这种字符串rn[code=<em>java</em>]ep.exCapability = "\0x6F\0x00\0xF0\0x10\0x01";[/code]rnc里只能识别\x 不能识别\0x,因为\0被当作结束符处理。rn我想请问下<em>传递</em>我这种字符串到c中 JNI里要怎么处理让c可以把这个字符串当作十六进制处理,而不是当作单个的字符串处理。rnrn我现在处理的是[code=<em>java</em>]const char *mn = (*env)->GetStringUTFChars(env, mn_emv, 0);[/code]把接收到的jstring转成char*,然后赋值给一个char[],但是没法识别成十六进制,所以赋值结果成了char[0]='\';char[1]='0'这种,而我需要的是char[0]=0x6F这样的结果、。
servlet通过url传递中文给js
<em>java</em>代码:   先将<em>中文</em>转为utf-8String seccessUrl=&quot;showUserInfo&quot;; String str=&quot;修改成功&quot;; String msg=URLEncoder.encode(str, &quot;UTF-8&quot;); response.sendRedirect(&quot;success.jsp?url=&quot;+seccessUrl+&quot;&amp;amp;msg=&quot;+msg);js代码:   ..
java jni问题
这个是<em>java</em>里的接口:rnpublic native int ReadSms(int sId, String sNo, String sCon, String sTime);rnJNI里的实现:rnJNIEXPORT jint JNICALL Java_util_MessageOperation_ReadSmsrn(JNIEnv *env, jobject obj, jint sId, jstring sNo, jstring sCon, jstring sTime)rnrn rn return ReadSms( sId, jstringTostring(env,sNo),jstringTostring(env,sCon),jstringTostring(env,sTime));rn //return 0;rn;rn这个是jstringTostring方法:rnchar* jstringTostring(JNIEnv* env, jstring jstr) rn rn char* rtn = NULL; rn jclass clsstring = env->FindClass("<em>java</em>/lang/String"); rn jstring strencode = env->NewStringUTF("utf-8"); rn jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(L<em>java</em>/lang/String;)[B"); rn jbyteArray barr = (jbyteArray)env->CallObjectMethod(jstr, mid, strencode); rn jsize alen = env->GetArrayLength(barr); rn jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE); rn if (alen > 0) rn rn rtn = (char*)malloc(alen + 1); rn memcpy(rtn, ba, alen); rn rtn[alen] = 0; rn rn env->ReleaseByteArrayElements(barr, ba, 0); rn return rtn; rn rn然后return ReadSms( sId, jstringTostring(env,sNo),jstringTostring(env,sCon),jstringTostring(env,sTime));rn这一句 的这个readSms这个方法是别人给的dll里的接口就是这个:rnextern "C" _declspec(dllexport) __stdcall int ReadSms(int sId, char * sNo, char * sCon, char * sTime);rnrn最后<em>问题</em>就出在在<em>java</em>里面调ReadSms 方法的时候就会出<em>问题</em>...求高手帮我解决一下,我是小白,不太懂.....
JavaScript传递中文给VC程序乱码问题
急急急!!!rnrnVC的MFC加载一个网页。rn我用JavaScript<em>传递</em>一个<em>中文</em>字符串到VC中,是在JavaScript中直接调用VC函数实现<em>传递</em>的,该<em>中文</em>字符串作为VC函数参数用。可是得到的确实乱码。rn我的VC函数接收JavaScript数据是用的BSTR类型。JavaScript所在的网页是UTF-8的。怎么能正确得到<em>中文</em>?
关于JNI中函数传递中文字符的问题
1。本地方法申明:rnpublic static native int ReadArray(String[] resp);rn2。生成的头文件中:rnJNIEXPORT jint JNICALL Java_ssc_Device_ReadArrayrn (JNIEnv *, jclass, jobjectArray);rn3。我的实现:rnJNIEXPORT jint JNICALL Java_ssc_Device_ReadArrayrn (JNIEnv *env, jclass obj, jobjectArray resp)rnrn jstring str,str2,str3;rn unsigned char s1[70]="啊历王史磊 名字123F9829001";rn unsigned char s2[70]="9071345FAKSHGHhajkhsdfg 实际是时死";rn unsigned char s3[70]="ahjkghjaJKLGF907135";rn rnrn str=(*env)->NewStringUTF(env,s1);rn str2=(*env)->NewStringUTF(env,s2);rn str3=(*env)->NewStringUTF(env,s3); rn (*env)->SetObjectArrayElement(env,arr,0,str);rn (*env)->SetObjectArrayElement(env,arr,1,str2);rn (*env)->SetObjectArrayElement(env,arr,2,str3);rnreturn 1;rnrn4。在试程序中,我用rnstrvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");对得到的字符串进行处理,但是显示的结果中有些<em>中文</em>字符不能正确显示:如下rnstr1: 啊历王?磊 名字123F9829001rnstr2: 9071345FAKSHGHhajkhsdfg ?际是?死rnstr3: ahjkghjaJKLGF907135rnrn如何解决?rn
JNI基础 给c传递int数组,c对数组处理完毕返回给java
(1)获取<em>java</em>数组的长度     int length = (*env)-&amp;gt;GetArrayLength(env,jarray); (2)得到数组的指针     int * arr = (*env)-&amp;gt;GetIntArrayElements(env,jarray,0); (3)遍历数组中的每个元素,对其进行加5操作   int i = 0;     for(;i&amp;lt;l...
linux下java读取mysql数据库中文问题
操作系统:Fedora Core 2rnJDK:1.4.2rnMySQL:4.1rn其中mysql default-character-set已经设为gbkrnimport <em>java</em>.sql.*;rn rnpublic class TestDBrn private Connection con;rn private final String db="jdbc:mysql://localhost:3306/database?user=user&password=password";rn TestDB()rn tryrn Class.forName("com.mysql.jdbc.Driver").newInstance();rn con=DriverManager.getConnection(db);rn catch(Exception e)rn e.printStackTrace();rn rn rn rn public void disConnect()rn if(con!=null)System.out.println("OK");rn tryrn con.close();rn catch(Exception e)rn e.printStackTrace();rn rn rn rn public String getName()rn Statement stmt=null;rn ResultSet rs=null;rn String result=null;rn tryrn stmt=con.createStatement();rn rs=stmt.executeQuery("select * from commu");rn rs.first();rn result=rs.getString("name");rn catch(Exception e)rn e.printStackTrace();rn finallyrn tryrn if(stmt!=null)stmt.close();rn catch(Exception e)rn e.printStackTrace();rn rn rn return result;rn rn public static void main(String args[])rn TestDB test=new TestDB();rn System.out.println(test.getName());//输出从数据库读取的<em>中文</em>为乱码rn System.out.println("开始");//直接输出<em>中文</em>可以rn test.disConnect();rn rnrn谢谢先rn
NDK/JNI二维数组多维数组传递
多维数组和对象数组一样处理,例如二维数组里的每个元素还是一个数组 用jArray表示,直到数组变为一维的,且里面元素为基本类型,去获得一维数组指针。给大家提供个例子。已经测试通过。 Java_cn_wzl_FiveChessView_checkWin( JNIEnv* env,jobject thiz,jobjectArray qizidata) { jint i,j; int ...
jni能否传递File对象
我需要在<em>java</em>端打开一个指定的文件,然后将这个File对象<em>传递</em>给c++,让c++进行处理,不知道,这种方式能否实现,在网上搜了一对资料,全都是<em>传递</em>一些基本的数据类型,不知道这种方式应该怎样实现,请各位高手帮忙解决一下
Jni Byte数组传递异常
JNI jbyteArray jobjectArray Crash pin count is 1024 JNI:pin count on array 0x... ([B) ReleaseByteArrayElements ReleaseByteArrayElements(env,src,srcp,<em>jni</em>mode) 异常 数组
android JNI数据结构传递实例
之前遇到一个项目,在C代码端有个数据结构需要app层<em>传递</em>数据,其结构体如下:typedef struct { uint8_t type; union { char name[PL_MAX_NAME + 1]; char loc[PL_MAX_LOC + 1]; pl_prod_type_t pr...
android jni 中文字符传递demo
android <em>jni</em> <em>中文</em>字符<em>传递</em>demo,实现了C语言与<em>java</em>端之间互相<em>传递</em>汉字的功能。例程开发环境为eclipse。详细说明,见相关博客。
JNI传递复杂参数可以吗
比如说用<em>java</em>写的native函数的参数是Person类型(自定义的),C里面能识别吗
jni怎么样传递一个字符串数组?
怎么样<em>传递</em>一个字符串?rnxx.cpprn[code=c]rnJNIEXPORT jstring JNICALL Hello_Native(JNIEnv *env, jobject obj,jstring string)rnrn const char *str = env->GetStringUTFChars(string, 0);rn return env->NewStringUTF( "Hello from JNI !");rnrnstatic JNINativeMethod gMethods[] = rn "JniHello",const_cast("(L<em>java</em>/lang/jsting)L<em>java</em>/lang/jsting;"),(void*)Hello_Native,rn[/code]rnrnxx.<em>java</em>rn[code=<em>java</em>]rnpublic native static String JniHello(String text);rn[/code]rnrn系统一直提示,gMethods中声明JniHello有<em>问题</em>。参数不对。rn
请教,JNI byte[] 传递失败!
最近在写个WEB项目前台采用JAVA(jsp+struts+<em>java</em>bean+tomcat),后台用C++写业务逻辑。通过JNI调用C++,现在出现的<em>问题</em>是我在传byte[]数组的时候传到C++中却为空,也没有报错,用ExceptionCheck()函数扑捉也没扑捉到异常。rnrn下面是代码:rnJAVACALL代码:rnrnpackage com.bid.call;rnrnrnpublic class JNICall rn staticrn System.loadLibrary("Service");rn rn public native byte[] ServerProcess(byte[] strBuffer, int bufferLen);rnrnrnC++<em>jni</em>接口代码:rncom_bid_call_JNICall.h:rnrn/* DO NOT EDIT THIS FILE - it is machine generated */rn#include rn#include "BaseCbo.h"rn/* Header for class com_bid_unicall_JNICall */rnrn#ifndef _Included_com_bid_call_JNICallrn#define _Included_com_bid_call_JNICallrn#ifdef __cplusplusrnextern "C" rn#endifrn/*rn * Class: com_bid_call_JNICallrn * Method: ServerProcessrn * Signature: ([BI)[Brn */rnJNIEXPORT jbyteArray JNICALL Java_com_bid_call_JNICall_ServerProcessrn (JNIEnv *, jobject, jbyteArray, jint);rnrnint ParamBuff2ObjConvert(CBaseCbo& oCParamPkg, char *strBuffer, int nLen);rnrnint ParamObj2BuffConvert(CBaseCbo& oCParamPkg, char **strBuffer, int *nLen);rnrn#ifdef __cplusplusrnrn#endifrn#endifrnrnrncom_bid_call_JNICall.cpp:rnrn#include "ParamPkg.h"rn#include "BusinessDispatch.h"rn#include "com_bid_call_JNICall.h"rnrnrnJNIEXPORT jbyteArray JNICALL Java_com_bid_call_JNICall_ServerProcessrn (JNIEnv *env, jobject obj, jbyteArray jBuffer, jint jLen)rnrn CParamPkg objParamPkg;rn CBusinessDispatch BusinessDispatch;rnrn char *strRetBuffer = NULL;rn int nRetLen = 0;rnrn char *strBuffer = (char *)env->GetByteArrayElements(jBuffer, 0);/* 这里取得的是空,在JAVA中已经确认非空 */rn if (env->ExceptionCheck() == JNI_TRUE || strBuffer == NULL)rn rn env->ExceptionDescribe();rn env->ExceptionClear();rn rnrn /* JParamPack convert to CParamPack */rn ParamBuff2ObjConvert(objParamPkg, strBuffer, jLen);rnrn /* 调用分发对象 进行分发处理 */rn BusinessDispatch.DispatchProcess(objParamPkg);rnrn /* CParamPack convert to JParamPack */rn ParamObj2BuffConvert(objParamPkg, &strRetBuffer, &nRetLen);rnrn /* 将字符流变回成jbyteArray返回Jvm */rn env->SetByteArrayRegion(jBuffer,0,nRetLen,(jbyte *)strRetBuffer); rnrn delete strRetBuffer;rnrn return jBuffer;rnrnrn上面是JNI接口的代码,在JAVA中已经调试到ServerProcess(byte[] strBuffer, int bufferLen)函数,而且已经确认了strBuffer是有值的,但是当我调试DLL,跟踪到char *strBuffer = (char *)env->GetByteArrayElements(jBuffer, 0);之后rnstrBuffer却为“”,里面没有任何值。也没异常。rnrn刚用JNI不熟悉,麻烦哪位大哥点解下,不甚感激。不知道是不是我哪里的路径没设置对,路径<em>问题</em>搞的我晕晕的。。。
jni如何传递一个字符串数组?
如何<em>传递</em>一个字符串数组?rnxx.cpprnrn JNIEXPORT jstring JNICALL Hello_Native(JNIEnv *env, jobject obj,jstring string)rn rn const char *str = env->GetStringUTFChars(string, 0);rn return env->NewStringUTF( "Hello from JNI !");rn rn static JNINativeMethod gMethods[] = rn "JniHello",const_cast("(L<em>java</em>/lang/jsting)L<em>java</em>/lang/jsting;"),(void*)Hello_Nativernxx.<em>java</em>rnrn public native static String JniHello(String text);rnrn为什么系统总是提醒当在 gMethods 中申明 JniHello 时,参数不正确。
21天学通java 21天学通java下载
是我看的第一本java的书籍,适合初学者,21天学习系列中的一本 相关下载链接:[url=//download.csdn.net/download/cvison/3190525?utm_source=bbsseo]//download.csdn.net/download/cvison/3190525?utm_source=bbsseo[/url]
UNIX网络编程第二卷.part2下载
UNIX网络编程第二卷.part2UNIX网络编程第二卷.part2UNIX网络编程第二卷.part2UNIX网络编程第二卷.part2UNIX网络编程第二卷.part2 相关下载链接:[url=//download.csdn.net/download/lfxyan/3559043?utm_source=bbsseo]//download.csdn.net/download/lfxyan/3559043?utm_source=bbsseo[/url]
右键扩展菜单管理器下载
RightMenuMgr 中文版 强大免费实用方便的右键扩展菜单管理器 相关下载链接:[url=//download.csdn.net/download/libi_vs/7992367?utm_source=bbsseo]//download.csdn.net/download/libi_vs/7992367?utm_source=bbsseo[/url]
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制
我们是很有底线的