用java調用dll本是一個不難的事情,但往往會給初學者帶來的一點麻煩,網絡上很多調用dll的例子都參差不齊,往往省略了一些步驟,對他們來說覺得簡單不需要說明,對初學者來說確很重要,結果不想可知。因此在這里仔細的說明一下,希望給初學者們帶來些許方便,高手繞過。。
一,首先在C盤建立項目文件夾jnitest,然后建立hello文件夾,在hello文件夾下放入Test.java,即在
C:\jnitest\hello下放入Test.java,
Test.java的內容為:
package hello;
class Test {
static {
?? System.loadLibrary("TestDll");
}
public static void main(String ar[]) {
?? System.out.println("Hello world from Java");
?? Test t = new Test();
?? int a = 1, b = 1;
?? int c = t.add(a, b);
?? System.out.println(c);
}
public native int add(int a, int b);
}
二,啟動cmd命令行工具,切換到項目文件夾的目錄(C:\jnitest>),然后輸入javac hello\Test.java,即cmd最終顯示為:C:\jnitest>javac hello\Test.java,接著執行C:\jnitest>javah hello.Test。所有命令
都注意下大小寫。最終會在C:\jnitest下生成hello_Test.h頭文件。
三,打開Vc++ 6.0,新建-》工程-》Win32 Dynamic-Link Library,工程名稱為TestDll,點確定,然后
選擇“一個簡單的DLL工程”,按完成。
四,將hello_Test.h拷貝到VC的TestDll項目的文件夾下,在VC6.0界面中左方導航中選擇“FileView”選擇
Header Files點右鍵-》添加文件到目錄,然后選中hello_Test.h。
五,打開TestDll.cpp,修改內容為:
// TestDll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "hello_Test.h"
JNIEXPORT jint JNICALL Java_hello_Test_add
(JNIEnv *, jobject, jint a, jint b)
{
return a+b;
}
六,點菜單“工具”-》選項-》目錄,這里應添加jdk的頭文件路徑,添加兩個。我的為H:\JDK1.5.0_16
\INCLUDE和H:\JDK1.5.0_16\INCLUDE\WIN32。
七,編譯項目文件。
八,將編譯生成的TestDll.dll拷貝到和hello_Test.h相同的目錄下,在我這邊既是C:\jnitest。(既C:\jnitest下有TestDll.dll和hello_Test.h)。
九,在cmd命令行C:\jnitest>下輸入java hello.Test,即可看到結果。
十。輸出為:Hello world from Java
??????????????????? 2
一,首先在C盤建立項目文件夾jnitest,然后建立hello文件夾,在hello文件夾下放入Test.java,即在
C:\jnitest\hello下放入Test.java,
Test.java的內容為:
package hello;
class Test {
static {
?? System.loadLibrary("TestDll");
}
public static void main(String ar[]) {
?? System.out.println("Hello world from Java");
?? Test t = new Test();
?? int a = 1, b = 1;
?? int c = t.add(a, b);
?? System.out.println(c);
}
public native int add(int a, int b);
}
二,啟動cmd命令行工具,切換到項目文件夾的目錄(C:\jnitest>),然后輸入javac hello\Test.java,即cmd最終顯示為:C:\jnitest>javac hello\Test.java,接著執行C:\jnitest>javah hello.Test。所有命令
都注意下大小寫。最終會在C:\jnitest下生成hello_Test.h頭文件。
三,打開Vc++ 6.0,新建-》工程-》Win32 Dynamic-Link Library,工程名稱為TestDll,點確定,然后
選擇“一個簡單的DLL工程”,按完成。
四,將hello_Test.h拷貝到VC的TestDll項目的文件夾下,在VC6.0界面中左方導航中選擇“FileView”選擇
Header Files點右鍵-》添加文件到目錄,然后選中hello_Test.h。
五,打開TestDll.cpp,修改內容為:
// TestDll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "hello_Test.h"
JNIEXPORT jint JNICALL Java_hello_Test_add
(JNIEnv *, jobject, jint a, jint b)
{
return a+b;
}
六,點菜單“工具”-》選項-》目錄,這里應添加jdk的頭文件路徑,添加兩個。我的為H:\JDK1.5.0_16
\INCLUDE和H:\JDK1.5.0_16\INCLUDE\WIN32。
七,編譯項目文件。
八,將編譯生成的TestDll.dll拷貝到和hello_Test.h相同的目錄下,在我這邊既是C:\jnitest。(既C:\jnitest下有TestDll.dll和hello_Test.h)。
九,在cmd命令行C:\jnitest>下輸入java hello.Test,即可看到結果。
十。輸出為:Hello world from Java
??????????????????? 2

更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
