??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
1.q接
(tng) 命o(h): (tng) mysql -hL地址 -u用户?-p密码
(tng) 本地:q接 (tng) (tng) cmdq入mysql/bin之后, 输入mysql -uroot -p然后回R ?x)提CZ输入密码 接着回R卛_(如果密码为空);
(tng) q程q接:假设q程L的IP为:(x)222.222.212.212Q用户名为root,密码为abcdef。则键入以下命o(h)Q?br /> (tng) (tng) (tng) (tng) mysql -h222.222.212.212 (tng)-uroot (tng) -pabcdef
2.Ҏ(gu)据库和表的操?br /> (tng) (tng) (tng)
(tng) (tng) (tng)查看用户拥有权限的数据库 (tng): (tng) (tng) (tng) (tng) (tng) show databases;(注意分号)
(tng)
(tng) (tng) 创徏数据库test: (tng) create database testdb;
(tng) (tng) 切换到testdb数据? (tng) (tng) (tng) (tng) (tng) (tng) use testdb;
(tng) (tng) 删除数据库testdb: drop database (tng)testdb;
(tng) (tng) 查看当前数据库中有权限的? show tables;
(tng) (tng) 创徏表s_position,department,,depart_pos,testtable:
(tng) (tng) (tng) (tng) create table s_position
(tng) (tng) (tng) (tng) (
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) id int not null auto_increment,
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) name varchar(20) not null default (tng) 'l理', (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #讑֮默认?br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) description varchar(100),
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) primary key PK_positon (id) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)#讑֮主键
(tng) (tng) (tng) (tng) ); (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) create table department
(tng) (tng) (tng) (tng) (
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) id int not null auto_increment,
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) name varchar(20) not null default 'pȝ?, (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #讑֮默认?br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) description varchar(100),
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) primary key PK_department (id) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #讑֮主键
(tng) (tng) (tng) (tng) );
(tng) (tng) (tng) (tng) create table depart_pos
(tng) (tng) (tng) (tng) (
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) department_id int not null,
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) position_id int not null,
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) primary key PK_depart_pos (department_id,position_id) (tng) #讑֮复和主键
(tng) (tng) (tng) (tng) );
(tng) (tng) (tng) (tng) create table testtable
(tng) (tng) (tng) (tng) (
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) id int not null auto_increment primary key, (tng) (tng) (tng) (tng) #讑֮主键
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) name varchar(20) not null default '无名?, (tng) #讑֮默认?br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) department_id int not null,
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) position_id int not null,
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) unique (department_id,position_id) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #讑֮唯一?br /> (tng) (tng) (tng) (tng) );
(tng) (tng) 查看表testtable的结? (tng) (tng) desc testtable;
(tng) (tng) 删除表testtable: (tng) (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng) (tng) drop table testtable; (tng) (tng) (tng) (tng) (tng) (tng) (tng)
(tng) 修改表结?操作数据(????
(tng) (tng) (tng).....(同sql语句,?
(tng)3. 备䆾和恢?
(tng) (tng) Ҏ(gu)据的备䆾和恢复命?在网上有许多U版?l笔者亲w测?下面的命令是可行Ҏ(gu)之一:
(tng) (tng) (tng)
(tng) (tng) (tng) 备䆾数据库testdb: (tng) (tng)
(tng) (tng) (tng) 本地:mysqldump -uroot (tng) -pabcdef testdb>e:testdb.sql (tng)
(tng) (tng) (tng) q程:mysqldump -h222.222.212.212 -uroot (tng) -pabcdef testdb>e:testdb.sql (tng)
(tng) (tng) (tng)q里假设数据库的用户名和密码分别是root和abcdef, 导出到额盘根目录?得到的testdb.sql是一个sql脚本Q不包括建库的语句,所以你需要手工创建数据库下次才可以导?恢复数据库testdb;
(tng) (tng) (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) 恢复数据库testdb: (tng) (tng) (tng) (tng) (tng) (tng)首先 需要创Z个空库testdb(原因如上);
(tng) (tng) (tng) (tng) 命o(h): (tng) (tng)
(tng) (tng) (tng) (tng) 本地:mysql -uroot -pabcdef (tng) testdb<e:testdb.sql (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) q程:mysql -h222.222.212.212 (tng) -uroot -pabcdef (tng) testdb<e:testdb.sql (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) 后面e:testdb.db代表本地sql文g路径,如果mysql安装在本地可以把sql文g考到mysql/bin的安装目录下,׃用写路径?
?在网上有些朋友说,mysql的安装目录必Mؓ(f)默认目录(即c:/mysql),否则?x)出问?W者也验?jin)一下在安装d盘的效果,l果暂时没有发现什么问?,q说明有时候命令执行异常可能和安装目录无关.^_^
Java 完全可以?gu)的实现多媒体的编辑与处理Q包括图象的处理技术( JGraph Q、动L术( JFlash Q、声韌频技术( JMF Q等{;
Java
对图象处理进行了(jin)很好的支持,通过
java
提供的类Q我们完全可以对图象q行各种常见的操作和变换Q?/span> (tng)
(tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng)1?/span>
java囑Ş图象处理所用到的相关类与接口:(x)
(tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
java.awt.color、java.awt.grahpics、java.awt.image、?tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?br /> (tng) (tng) (tng) (tng) (tng) (tng)java.awt.image.bufferedimage?span style="mso-bidi-font-weight: bold">java.awt.image.LookupOp?/font>
(tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) java.awt.image.ConvolveOp?span style="mso-bidi-font-weight: bold">java.awt.image.AffineTransformOp?br /> (tng) (tng) (tng) (tng) (tng) (tng)bufferedimageop接口?qing)其实现cȝQ?/font>
2?span style="FONT: 7pt 'Times New Roman'"> (tng) java 囑Ş图象处理可以完成的功能:(x)
图象文g的打开Q浏览)(j)与保存(支持 jpg ?/span> jpeg ?/span> gif ?/span> png {)(j)、放大镜操作、旋转与镜像操作、反色和其他反色、黑白色阈值处理、亮度调整、羃放显C、边~化、图形的锐化和钝化、其它功能等Q?/span> .
3?span style="FONT: 7pt 'Times New Roman'"> (tng) java 囑Ş图象处理应用范围?qing)限Ӟ?x)
……………?
二?/span> 实例演示介绍
c/s (tng) Demo (tng) Q?a href="http://www.aygfsteel.com/Files/soft/javaDrawer.rar">下蝲 Q?/span> ?/span> ?
三?/span> 关于使用 java ?/span> .net 技术实现图片编辑的分析与比?/span>
关于 java ?/span> .net 的争Z来没有停止过?/span>
(tng) (tng) (tng)
开放性是
Java
生命力的源泉Q它不属于一个单独的公司Q尽?/span>
Sun
在其中v着关键性的作用。众多世界的公司,例如
IBM
、甲骨文?/span>
BEA
{等Q都?/span>
Java
都给予完全的支持Q正是这P
java
的存在ƈl箋(hu)产生一pd不^凡的影响是无庸置疑的Q?/span>
(tng) (tng)
(tng) (tng) (tng)
?gu)微Y?/span>
.NET
最大的特点是Ҏ(gu)上手。花上两三个月时_(d)你就可以像模像样地当软g工程师了(jin)。相比之下,
Java
׃那么Ҏ(gu)。而且Q从软g技术的深度来看Q?/span>
.NET
之中有没有分布式事务处理Q这个问题(sh)然被许多资深的Y件h员所质疑
?
不过Q是同意 java 中的开发框架模式及(qing)诸多优秀开源组件更有h(hun)|q是要更注重 .net 的开发效率,q要Ҏ(gu)企业以及(qing)目自n来抉择,如果对于一个有着深厚的开发积累或者打在相当一D|间长期用的目来说Q没有采?/span> java 开发^台的是一个不太合理的事情Q因Z长期看来Q新的^台系l的混合使用必然?x)造成一些品的不同q_的重复开发,而另一斚w因ؓ(f) java 独有的设计模式框Ӟ?x)让一?/span> java E序的后期维护变得相当简单容易,由此看来Q它的开发成本ƈ不一定会(x)比其它语a的开发费用要高?/span>
此前Q?/span> Jupitor 公司发布的一个报告显C, 62% 的中企业已l采用了(jin) .NET Q?/span> 36% 的企业则采用Z Java ?/span> IBM (tng) WebSphere {服务^台。包括微软公司开发业务的负责人约W哥马利也曄表示Q?/span> Java 未来会(x)变成底层的编E框Ӟ没有人可以通过它赚钱,它将?x)变成一个普通商品。”按照他的预,明天?/span> java 或许q当于今天?/span> C Q?/span>
(tng) (tng) (tng)
在图形图片的处理领域内,有许多种不同的编E方式,?/span>
java
技术而言Q可以直接调?/span>
java api
实现Q同时在
java
开源社Z有不开源的lgQ从效率上考虑Q显然后者是一U更好的选择Qƈ且相信在
java
领域内以后一定会(x)有更多更优秀的开放性源码出玎ͼq就?/span>
java
的活?/span>
java
的优势;
四?/span>
设想
Ҏ(gu)
1
Q?/span>
(tng) 理由Q充分利?/span> Ajax 胖客L(fng)、无h加蝲提交数据?qing)异步通信的特征,构造出 Internet 上极速处理图片及(qing)照片的体验^収ͼ从而大大减用L(fng)待页面刷新的?ch)恼Q客户在充分n受上|的乐趣的同时对公司的品也留下更ؓ(f)深刻的印象?/span>
(tng) 优点Q(h)?/span> java q_产品pȝ无关性、安全性、易l护升、开放性等所有优点;
Ҏ(gu) 2 Q多语言q_开发模?/span> (tng) ?/span> java q_实现在线~辑囄的功能而以其它语言q_Q如 .net+GAI Q实现本地图片处理功?/span> (tng)
理由Q语a本n无所谓好不好Q它只是一个工P它们都是Z品服务的Q而品又是ؓ(f)客户服务的,所以采用什么^台来开发品最l是用户说了(jin), java 的出现本w就是基?/span> Internet 的,因此 B/S 模式下采?/span> java 技术,而以其它语言开发用h面应用程序,扬长避短Q不但可以有效减风险,而且产品开发周期也?x)快很多?/span>
优点Q风险小Q效率高?/span>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) copyright@ (tng) 彭书?/span>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (4)~写相应Ҏ(gu)的实C?br /> (tng) (tng) (tng) 在编码过E中Q需要注意变量的长度问题Q例如Java的整型变量长度ؓ(f)32位,而C语言?6位,所以要仔细核对变量cd映射表,防止在传DE中出现问题?/font>
(tng) (tng) (tng) (5)JNI实现代码~译成动态链接库
(tng) (tng) (tng) ~译q程是利用CQC++~译器实现的Q当要用生成的动态链接库Ӟ调用者类中需要显式调用该链接库?br /> (tng) (tng) (tng) l过上述处理Q基本上完成?jin)一个包含本地化Ҏ(gu)的Javacȝ开发?/font>
(tng) (tng) (tng) (tng) 3 ZJNI的嵌入式手机软g开发实?br /> (tng) (tng) (tng) 下面通过一个实例来描述q用
JNI技?/font>
在手Z操纵摄像_(d)捕捉视频q存储图片的q程?br /> (tng) (tng) (tng) (1)zdQ状态图
(tng) (tng) (tng) ?为捕捉视频ƈ存储囄的活动/状态图
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)点击查看原图
Ҏ(gu)?的活动/状态,具体的对应步骤如下:(x)
(tng) (tng) (tng) ①发赯程?br /> (tng) (tng) (tng) ②发hE后Q徏立文件用于存储图片?br /> (tng) (tng) (tng) ③用指针获得分配的缓冲器Q用于存储获得的帧?br /> (tng) (tng) (tng) ④将指针压栈(序列化缓冲器)。由于手机的内存较小Qؓ(f)?jin)防止内存泄漏,Symbian操作pȝ有一个Cleanup stack的要求,卛_使用指针Ӟ用PushL把指针压入栈中,使用完后再用Pop弹出栈.如果在中间调用导致崩溃的函数时果真出C(jin)问题Q那么Clean up stack可以通过调用该指针的析构函数回收占用的空间?br /> (tng) (tng) (tng) ⑤操U|像头Q捕捉视频,q将囑փ从摄像头端传到~冲器?br /> (tng) (tng) (tng) ⑥将摄像头内的图像流存入~冲器内Qƈ缓冲器内的{化ؓ(f)文g,存(sh)ؓ(f)jpg格式的文Ӟ指向缓冲器的指针弹栈?br /> (tng) (tng) (tng) ⑦在q程⑥中Q如果用完?jin)序列化的缓冲器Q则要重新序列化~冲器,以备后面使用?br /> (tng) (tng) (tng) ⑧当接收到停止视频捕捉的信号后,关闭文g?br /> (tng) (tng) (tng) ⑨流E结束?br /> (tng)
(tng) (tng) (tng) (tng) (2)q用JNI技?/font>的视频捕?br /> (tng) (tng) (tng) 子功能捕捉视频的实现是由操纵摄像头、视频播?解码器准?以及(qing)建立摄像头和手机之间的连接会(x)话三个活动组成的。其中操U|像头是通过调用底层讑֤的驱动来实现的,需要利用JNI来实玎ͼ完成的方法包括准备、徏立、删除、销毁摄像头{。视频播攄一pdq程也是通过c++代码来实现的Q除?jin)准备、徏立、删除、销毁解码器外,q有开始、暂停、停止解码等。徏立摄像头和手Z间的q接cM建立客户端和服务器连接,视频从摄像头传到手机界面是通过多媒体会(x)话来完成的。多媒体
?x)话的徏立、关闭、摧毁以?qing)?x)话徏立后的发送、取消、读取数据等也是JNI的应用范畴?br />
(tng) (tng) (tng) (tng) l语
(tng) (tng) (tng) d采用UJava的h们通常反对本地化代码的使用Q认为JNI技术会(x)影响E序的可UL性和安全性。还有一些h认ؓ(f)Q在JavaE序执行的过E中调用cQc++E序只是对过L合编E技术的单扩展,其实际目的是Z(jin)充分利用大量原有的cE序库?br />
(tng) (tng) (tng) (tng) 其实Q不必拘泥于严格的^台独立性限Ӟ因ؓ(f)采用JNI技术只是针对一些严重媄(jing)响Java性能的代码段。该部分可能只占源程序的极少部分Q所以几乎可以不考虑该部分代码在Lq_之间UL的工作量。同Ӟ也不必过分担?j)类型匹配问题,完全可以控制代码不出现这U错误。此外,也不必担?j)安全控刉题,因?f)Java安全模型已扩展ؓ(f)允许非系l类加蝲和调用本地方法,卛_果在JavaE序中直接调用cQc++语言产生的机器码Q该部分代码的安全性就由Java虚拟机控制?br />
(tng) (tng) (tng) 现阶D,计算机应用的普及(qing)、互联网技术的实用以及(qing)U米微电(sh)子技术的H破Q正有力推动着21世纪的工业生产、商业活动、科学实验和家庭生活{领域自动化和信息化q程。全q程自动化品制造、大范围?sh)子商务zd、高度协同科学实验以?qing)现代化家居生活Qؓ(f)嵌入式品造就?jin)崭新而巨大的商机。除?jin)沟通信息高速公路的交换机、\由器和调制解调器Q构机集成刉系l?CIMS)所需的数据传输系lDCS(Data Communication System)和机器h以及(qing)规模较大的家用汽车电(sh)子系l,最有量效益和时代特征的嵌入式产品应数因特|上的信息家?information appliancesQ,如网l可视电(sh)话、网l游戏机、电(sh)子商务、商务?PDA)、移动电(sh)话以?qing)多媒体产?如电(sh)视机盒、DVD播放机、电(sh)子阅L)?/font>
(tng) (tng) (tng) 众所周知Q“一ơ编E,到处使用”的
Java
软g概念原本是针对|上嵌入式小讑֤提出的,几经周折Q目前SUN公司已推Z(jin)J2ME(Java 2 P1atform Micro Edition)针对信息家电(sh)的Java版本Q其技术日成熟,开始投入用。SUN公司Java虚拟?JVM)技术的有序开放,使得Java软g真正实现跨^台运行,即Java应用程序能够在带有JVM的Q何硬软gpȝ上执行。加上Java语言本n所h的安全性、可靠性和可移植性等特点Q对实现瘦n上网的信息家늭|络讑֤十分有利Q同时对嵌入式设备特别是上网讑֤软g~程技术生了(jin)很大的媄(jing)响?
(tng) (tng) 1 Java的性能问题?qing)几U解x(chng)?br /> (tng) (tng) (tng) JavaE序也有其本w的~陷Q那是其效率问题。由于Java是一U介于解释型和编译型之间的语aQ其对内存的理是通过JVM虚拟机来实现的,同样的程序,如果用编译型语言C来实玎ͼ其运行速度一般要比Java快得多。因此,提高Java的性能显得十分重要?/font>
(tng) (tng) (tng) q今为止Qh们ؓ(f)提高Java的运行速度而做出的许多努力Q主要集中在E序设计的方法和模式选择斚w。但是由于算法和设计模式的优化是通用的,对Java有效的优化算法和设计模式Q对其他~译语言也基本适用Q因此不能从Ҏ(gu)上改变JavaE序与编译型语言在执行效率方面的差异?/font>
(tng) (tng) (tng) 另外QJIT(Just In TimeQ及(qing)时编?技术也是一个比较好的思想。它的基本原理是Q首先,通过Java~译器把Java源代码编译成与^台无关的二进制字节码。然后,在JavaE序真正执行之前Q系l通过JIT~译器把Java的字节码~译为本地化机器码。最后,pȝ执行本地化机器码Q不用对字节码进行解释。这样做的优Ҏ(gu)Q大大提高(sh)(jin)JavaE序的性能Q羃短了(jin)加蝲E序的时_(d)同时Q由于编译的l果q不在程序运行期间保存,因此也节U了(jin)存储I间。缺Ҏ(gu)Q由于JIT~译器对所有的代码都想优化Q因此同样也占用?jin)很多时间?/font>
(tng) (tng) (tng) 动态优化技术即提前~译为机器码的技?dynamicopttmizationQahead of time technology)是提高Java性能的另一个尝试。动态优化技术充分利用了(jin)Java源码~译、字节码~译、动态编译和?rn)态编译的技术。其输入是Java的源码或字节码。而输出是l过高度优化的可执行代码和动态库(WindoW中是Qdil文gQUNIX中是׃n?a.so文g)。其优点是能大大提高E序的性能Q缺Ҏ(gu)破坏?jin)Java的可UL性,也对Java的安全带来了(jin)一定的隐?zhn)?/font>
(tng) (tng) (tng) (tng) 2
JNI技?/font>
(tng) (tng) (tng) 实际上,有一U通常被忽视的技术可以在很大E度上解册个难题,那就是JNI(Java Native InterfaceQJava本地化方?。图l是JNI技术实现的一般步骤?br />
点击查看原图
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)