那是動態(tài)鏈接庫用C#可打包成dll文件
站在用戶的角度思考問題,與客戶深入溝通,找到保靖網(wǎng)站設(shè)計與保靖網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋保靖地區(qū)。
java只可以打包成.jar文件 功能和.dll文件一樣
1
首先要安裝好Visual Studio 2010 (其他版本也行)以及JDK(別忘了配置環(huán)境變量),然后安裝Eclipse。以上軟件安裝可自行百度,有很多資料。
2
進入正題,首先在Eclipse中新建工程,File-New-Java Project
3
然后右擊DllTest,New-package,再右擊src目錄下的com包,New-Class。這樣我們的Java項目就建好了。
4
再
建好的類文件Dlltest.java里添加代碼。主要是導(dǎo)入dll文件的loadlibrary函數(shù)和要調(diào)用的函數(shù)聲明shanfei。代碼詳
見
END
編譯Java工程并生成VC要用到的頭文件
1
現(xiàn)
在打開cmd,先進到當(dāng)前java文件所在的目錄,用cd xxx\xxx
命令即可,返回上一級目錄用cd..命令(注意后面的倆點)。到當(dāng)前目錄,也就是com文件夾下,輸入javac Dlltest.java
指令編譯java文件生成Dlltest.class文件,就在com文件夾下。
2
之
后再回到上級目錄,就是com文件夾的上一層src目錄(cd..命令),執(zhí)行javah命令生成頭文件(頭文件DllTest.h就在com的上層文件
夾src中),此處一定注意執(zhí)行javah命令(javah -classpath . -jni
com.DllTest,注意點兩邊的空格)的目錄,目錄錯誤就會報錯(如上圖所示)。
END
建立VC++工程,生成dll文件
1
打開Visual Studio 2010,新建項目,選擇win32項目
2
下一步,選擇,dll項目,勾選空項目,點擊完成,一個空的dll項目就建好了。
3
還記得之前java項目中生成的DllTest.h文件嗎?它就是Java為C++項目指定的頭文件,java生成頭文件,c++里只需要將頭文件里聲明的函數(shù)實現(xiàn)就好了。首先把頭文件復(fù)制到C++項目的目錄下并導(dǎo)入到解決方案的頭文件目錄下。
4
新建一個cpp文件,文件名最好與頭文件一致(不一樣也可以),在這個cpp文件中我們要實現(xiàn)頭文件中的函數(shù),需要注意的是函數(shù)頭必須跟DllTest.h中的一樣,不能出錯。加完代碼,會發(fā)現(xiàn)包含的頭文件jni.h和jni_md.h出錯了,下一步就來解決它。
5
這
個cpp文件中需要包含兩個java安裝目錄下的頭文件:jni.h和jni_md.h,分別位于java安裝目錄下的include文件夾和
include里的win32文件夾內(nèi)。找到這兩個文件,復(fù)制到Visual Studio VC 2010
的頭文件包含目錄中(我的是MicroSoft Visual Studio
10.0\VC\Include,如圖)。當(dāng)然也可以把頭文件之直接復(fù)制到當(dāng)前項目的目錄下(記得把代碼改為#include
“jni.h”),但是這樣每次新建項目都得復(fù)制粘貼。
6
復(fù)制完之后頭文件如果還報錯,就檢查一下VS的包含目錄,確認你把頭文件復(fù)制到VS的默認包含目錄中。屬性管理器-Debug-User-通用屬性-VC++目錄-包含目錄(include),添加剛才放置頭文件的目錄即可。
7
解決了上述問題,就可以嘗試編譯項目生成dll文件了,在debug或release模式下點擊生成解決方案,生成成功后到項目目錄的debug或release目錄下找到相應(yīng)的dll文件。
END
在Java中調(diào)用c++生成的dll文件
1
生成了dll文件,終于到了最后一步。把生成的dll文件復(fù)制到Java項目的目錄下,注意不是放在com文件夾,也不是src文件夾,是DllTest文件夾內(nèi),跟src同級,否則會報錯。
2
還有一點需要注意的是,在Java文件內(nèi)用LoadLibrary函數(shù)調(diào)用的庫名必須與Dll文件名一致,而不是跟java類名一致,這點可以參考java 部分的代碼。確認完上述問題,點擊運行,稍等片刻就可以看到運行結(jié)果,javadll之旅到此結(jié)束。
你是指使用動態(tài)鏈接嗎?這個可以用java中的反射機制做到,但是java中是沒有動態(tài)鏈接庫這種東西的。如果你指的是java調(diào)用本地dll的話,是使用jni技術(shù),dll也不是java編寫的。總是java是不可能編譯成為dll。有一種這種的方案,就是將java編譯的文件轉(zhuǎn)換為c#的,微軟有相應(yīng)的工具,可以搜到,然后就可以打包成為dll了。
不能,Java是一種虛擬機型語言,而DLL的二進制機器碼
不過現(xiàn)在有軟件能把Java的Class編譯成DLL文件和EXE文件
網(wǎng)站標題:java代碼生成dll,Java代碼生成證書
文章出自:http://aaarwkj.com/article14/dsiesde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、關(guān)鍵詞優(yōu)化、外貿(mào)建站、品牌網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)