在Web項目的開發(fā)過程中,可能對你很有幫助的基本書籍推薦,不要小看基礎(chǔ)!
- JFreechat:Web開發(fā)中設(shè)計到統(tǒng)計曲線,報表顯示的,用他吧,不過感覺他的API有點繁雜。
- Java設(shè)計模式:設(shè)計模式在我們的開發(fā)中無處不在,學習他的思路可以說非常重要!
- Javascript權(quán)威指南:由于Ajax的出現(xiàn),Javascript變得越來越重要,是Web開發(fā)中的利器!
- JNI:在Web開發(fā)中,不可避免的有時會調(diào)用dll,Java調(diào)用Dll的根本思想在于JNI,舉個例子:
-
- public class DllTest
- {
- public static void main(String[] args)
- {
- test a=new test();
- a.HelloWorld();
- System.out.println(a.cToJava());
- }
- }
-
- public class test {
- static
- {
- System.loadLibrary("MyNative");
- }
-
-
- public native static void HelloWorld();
- public native static String cToJava();
-
- }
-
-
- 使用win32 Dynamic-link Library新建一個新空工程,新建一個c++文件,命名為MyNative.cpp,代碼如下:
- #include <stdio.h>
- #include "test.h"
- JNIEXPORT void JNICALL Java_test_HelloWorld
- (JNIEnv *env, jclass jobject)
- {
- printf("hello world!\n");
- }
- JNIEXPORT jstring JNICALL Java_test_cToJava
- (JNIEnv *env, jclass obj)
- {
- jstring jstr;
- char str[]="Hello World!\n";
- jstr=env->NewStringUTF(str);
- return jstr;
- }
- 函數(shù)申明要和test.h中的函數(shù)申明保持一致,否則就出錯,使用rebuild all命令,得到MyNative.dll文件,拷貝到test.java同一目錄下。
- 運行DllTest類,就得到結(jié)果,這里我們就實現(xiàn)用c++來實現(xiàn)具體函數(shù)功能的方法,當然這是最簡單的JNI應用了。
//編寫JAVA文件,其中測試類為DllTest,代碼如下:
public class DllTest
{
public static void main(String[] args)
{
test a=new test();
a.HelloWorld();
System.out.println(a.cToJava());
}
}
//編寫JNI代碼,其中類名為test,如下:
public class test {
static
{
System.loadLibrary("MyNative");
}
//以下函數(shù)只做申明,在C中實現(xiàn)
public native static void HelloWorld();
public native static String cToJava();
}
//使用javac得到class文件,然后使用javah命令得到.h文件
//編寫C++代碼,MyNative如下:
使用win32 Dynamic-link Library新建一個新空工程,新建一個c++文件,命名為MyNative.cpp,代碼如下:
#include <stdio.h>
#include "test.h"
JNIEXPORT void JNICALL Java_test_HelloWorld
(JNIEnv *env, jclass jobject)
{
printf("hello world!\n");
}
JNIEXPORT jstring JNICALL Java_test_cToJava
(JNIEnv *env, jclass obj)
{
jstring jstr;
char str[]="Hello World!\n";
jstr=env->NewStringUTF(str);
return jstr;
}
函數(shù)申明要和test.h中的函數(shù)申明保持一致,否則就出錯,使用rebuild all命令,得到MyNative.dll文件,拷貝到test.java同一目錄下。
運行DllTest類,就得到結(jié)果,這里我們就實現(xiàn)用c++來實現(xiàn)具體函數(shù)功能的方法,當然這是最簡單的JNI應用了。