|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
先容
JNI是我喜好的java编程框架;它让你你自在的利用当地编写的代码。比方,假如你想要在你的java程序中利用WindowsAPI(不如说dll),那末你就要用JNI。Java最受接待的特征就是它的平台有关性。可是,偶然候这一特征也会使你将Java程序与当地平台整合变得坚苦。
比方,在我们的工程中,将动静增加到数据库之前,我们利用MSMQ(MicrosoftMessagingQue)的行列机制来保护动静(为了不动静丧失)。Microsoft供应了MSMQAPI,它是Windows的API。可是我们的程序利用Java来处置动静的,而且Java不克不及间接会见如许的API(dll)。因而我们决意做一其中间DLL,它可以作为Java和VC++之间的桥(我们用过的手艺JavaNativeInteface或JNI)。
在进一步先容之前,你应当晓得或熟习的上面一些常识:
1.当地办法:当地办法是一个用在.Java文件中声明的办法,而且这个声明将在你的当地代码(关于Windows来讲是在VC++中)中界说。
2.静态块:Java中的静态块是指在任何其他事变产生前就可以够被实行的代码块。
那末让我们入手下手吧。起首,用当地办法声明来写你的Java程序。上面代码来自源代码中的例子:
publicclassJNITest
{
static
{
System.loadLibrary("JNITest");//Loadingdllinmemory
}
nativevoidshowMessage(Stringstr);//Declaringnativemethod
publicJNITest()
{
System.out.println("IntheconstructoroftheJavaprogram");
}
publicstaticvoidmain(Strings[])
{
JNITestJNT=newJNITest();
JNT.showMessage("PassingstringfromJava");
}
}
在下面的代码中我们声了然showMessage办法,它是当地的办法,然后挪用它,w.r.t类JNITest的对象。
实行上面的步骤:
1.编译代码天生.class文件
2.在JDK文件夹中找到javah命令
3.在Dos命令行下实行javah-jniJNITest
实行完下面的步骤将发生JNITest.h文件。这个.h文件包括了在Java代码中声明的当地办法的VC++中的函数名。
创立JNIDLL
<p>我已完成了一半了。
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。 |
|