• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      PC機下實現(xiàn)java對文件系統(tǒng)功能調(diào)用

      2014-09-24 19:11:54王宏浩富強徐東晨
      無線互聯(lián)科技 2014年7期

      王宏浩 富強 徐東晨

      摘要:隨著時代的發(fā)展和科技的進步,Internet技術(shù)也得到了快速的發(fā)展。在這樣的條件下,java語言以其所獨有的特點,被廣泛應(yīng)用于多種設(shè)備、網(wǎng)絡(luò)和計算機中。盡管java可以跨平臺,具有良好的可移植性,但是PC機上,尤其是WINDOWS系統(tǒng)下,要通過java實現(xiàn)對系統(tǒng)文件的調(diào)用則較為困難。論文結(jié)合筆者研究,闡述了如何利用已經(jīng)寫好的FATFS文件系統(tǒng)C代碼,在JNI技術(shù)基礎(chǔ)上實現(xiàn)PC機上文件系統(tǒng)功能的調(diào)用。

      關(guān)鍵詞:SOA;文件系統(tǒng);JNI;讀文件;寫文件1JNI技術(shù)

      使用JNI技術(shù)的最終目的就是為了能夠在完成編寫頭文件和本地程序的基礎(chǔ)上,再借助C/C++文件生成一個動態(tài)庫文件,然后將其加載至Java程序中,確保其成功運行。具體步驟可以分為以下五步:第一,構(gòu)建Java工程,編寫相應(yīng)的Java代碼。在這一環(huán)節(jié)中,首要任務(wù)是將需要定義的動態(tài)庫名稱加載至Java類中,并且需要確定本地方法。第二,編寫并執(zhí)行.bat文件,從而生成與Java代碼相對應(yīng)的頭文件。第三,編寫本地代碼,以保證Java可以與C/C++數(shù)據(jù)文件之間的相互轉(zhuǎn)換。第四,編譯本地代碼,從而生成DLL或者.SO文件。第五,加載已生成的動態(tài)庫文件至Java代碼之內(nèi),并將Java程序運行。

      2SOA三層構(gòu)架下FATFS文件系統(tǒng)的移植

      SOA即Service-Oriented Architecture,是面向服務(wù)的體系結(jié)構(gòu),它的出現(xiàn)解決了如何提高系統(tǒng)的擴展性的問題。通過SOA的三層構(gòu)架,有效的解決了諸多問題。這可以從兩個方面分析,即邏輯層的SOA三層構(gòu)架以及實現(xiàn)層SOA三層構(gòu)架。

      2.1 邏輯層SOA三層構(gòu)架

      邏輯層SOA三層構(gòu)架的主要作用就是確保業(yè)務(wù)需求與系統(tǒng)的分離。根據(jù)不同的應(yīng)用方式,SOA可以實現(xiàn)不同語義層定義相應(yīng)的應(yīng)用協(xié)議語言。這樣就可以實現(xiàn)針對特定應(yīng)用系統(tǒng)的系統(tǒng)需求映射,從而達到將業(yè)務(wù)需求與系統(tǒng)之間的銜接的目的。邏輯層SOA三層構(gòu)架是針對FATFS文件系統(tǒng)之間的底層驅(qū)動函數(shù)。一般來說FATFS文件系統(tǒng)有六個接口函數(shù)與硬件層相對應(yīng),即磁盤初始化、獲取當前磁盤的狀態(tài)、寫扇區(qū)、讀扇區(qū)、獲取當前時間以及存儲介質(zhì)控制函數(shù)。

      2.2 實現(xiàn)層SOA三層構(gòu)架

      這與邏輯層SOA三層構(gòu)架相對應(yīng),引擎映射對應(yīng)概念模型需求層;流程映射對應(yīng)邏輯模型語義層;構(gòu)建映射對應(yīng)物理模型服務(wù)層。

      因為論文內(nèi)實現(xiàn)的PC機下Java對文件系統(tǒng)功能的調(diào)用是基于Java調(diào)用C而實現(xiàn)的,那么邏輯層SOA三層構(gòu)架內(nèi)的服務(wù)層之中的底層函數(shù)是與實現(xiàn)層的構(gòu)件池相對應(yīng)的,而實現(xiàn)層的引擎則是Java,這樣通過Java引擎就可以在調(diào)用文件系統(tǒng)流程的過程中生成的動態(tài)庫文件達到實現(xiàn)文件系統(tǒng)的目的。

      3PC機下Java對文件系統(tǒng)功能調(diào)用

      通過對前面SOA三層構(gòu)架的分析,并在此基礎(chǔ)上實現(xiàn)了FATFS文件系統(tǒng)的移植,接下來就可以實現(xiàn)通過Java對PC機下文件系統(tǒng)功能的調(diào)用。為了便于實現(xiàn)和測試,筆者所采用的測試平臺為VC++以及eclipse平臺。具體實驗流程如下所述:

      第一步,構(gòu)建Java工程Rename,其中設(shè)置其包名為filesystem,類FileSystem。

      第二步,在代碼FileSystem.java中聲明本地方法。

      其中:①函數(shù)表示對文件的重命名,path_old表示文件名,而path_new則代表修改以后的文件名;

      ②函數(shù)則表示需要根據(jù)路徑來讀取相應(yīng)的文件夾,代碼String path文件夾;

      ③函數(shù)則代表按照path的路徑進行文件數(shù)據(jù)的寫入;

      ④函數(shù)意為讀取相應(yīng)路徑內(nèi)的文件夾的內(nèi)容;

      ⑤函數(shù)表示讀取路徑寫文件的相關(guān)信息,諸如文件的創(chuàng)建時間等;

      ⑥函數(shù)指需要為path路徑創(chuàng)建一個文件夾;

      ⑦函數(shù)指將該路徑下文件夾的屬性改變。

      第三步,加載動態(tài)庫,其語句為

      static

      {

      System.loadLibrary("renamel");

      }

      Renamel即表示動態(tài)庫的名字,這樣Java就可以憑借調(diào)用上述中介DLL的方式,間接地達到調(diào)用真正第三方DLL的目的。

      第四步,通過編譯,從而生FileSystem.class文件。

      第五步,編寫執(zhí)行.bat文件,這樣就可以生成與Java代碼相對應(yīng)的頭文件,即filesystem_FileSystem.h。

      第六步,通過VC6.0編譯器,就能夠生成renamel.dll文件。

      這樣一來就實現(xiàn)了在PC機下Java對文件系統(tǒng)功能的調(diào)用。

      4結(jié)語

      綜上所述,在PC機下實現(xiàn)Java對文件系統(tǒng)功能的調(diào)用是一個復(fù)雜的過程,需要涉及到眾多方面。而JNI技術(shù)保障這一功能實現(xiàn)的前提。為了實現(xiàn)這一目的,就必須了解和掌握JNI技術(shù)需要的軟件和平臺,并在此基礎(chǔ)上分析FATFS文件系統(tǒng)的結(jié)構(gòu)基礎(chǔ),并最終借助SOA的三層構(gòu)架實現(xiàn)對PC上的FATFS系統(tǒng)文件的移植。最后,憑借JNI技術(shù),即可實現(xiàn)WINDOWS系統(tǒng)下Java對文件系統(tǒng)功能的調(diào)用。

      [參考文獻]

      [1]常青,張剛,王耀力.SOA三層構(gòu)架在嵌入式文件系統(tǒng)上的實現(xiàn)[J].太原理工大學學報,2011(03).

      聊城市| 通化市| 舟曲县| 新营市| 沁水县| 衡阳市| 青阳县| 任丘市| 岳西县| 达孜县| 合作市| 蕉岭县| 政和县| 丁青县| 石首市| 民丰县| 沈丘县| 蒙自县| 象山县| 古丈县| 隆德县| 信阳市| 峡江县| 肇源县| 新邵县| 纳雍县| 青浦区| 延庆县| 岳池县| 双江| 博罗县| 沙坪坝区| 衢州市| 库尔勒市| 和政县| 麻栗坡县| 浙江省| 濮阳市| 瑞昌市| 铁岭市| 东源县|