论文部分内容阅读
随着Internet及环球网技术的不断发展,java语言作为一门网络编程语言也得到了迅速发展,在不同的设备、计算机和网络中得到广泛应用。同时,java做为一门面向对象的程序设计语言,凭其跨平台及可移植性好的特点,特别适合应用程序的开发。但是,要实现java语言不支持的、依赖于操作系统的特性功能或者一个用其他语言编成的库或程序,以及一些与系统底层交互的时间敏感代码时,java本身并不能实现这些功能,此时就需要引入JNI技术。通过对系统架构的整体分析,以SOA三层架构(需求层、语义层、服务层)的设计思想为理念,将系统架构分为的硬件层、文件系统层和用户层。硬件层对应系统底层的五个接口函数,系统层对应文件系统的流程,负责在系统用户层与硬件层之间传递驱动的相关参数和数据。当用户层发出应用需求时,该访问需求映射为文件系统的操作流程。本文是在WINDOWS操作系统平台下,基于一个已经写好的FATFS文件系统C代码,通过JNI技术在java平台下实现文件系统的功能。首先,将C编写的底层驱动函数作为系统的原子构件,包括六个函数:初始化磁盘驱动器、获取磁盘状态、读扇区、写扇区、控制设备关联特性、获取当前时间。这些函数可以完成文件系统层与硬件层的对接,进而实现文件系统层基本构件的功能。用户层通过调用文件系统层的应用语义流程来满足应用需求。论文首先对文件系统的基本构件进行了分析。随后,基于SOA架构实现了FATFS文件系统的移植。最后,结合文件系统的相关语义流程及JNI技术,将C编写的本地代码生成DLL (UNIX操作系统为SO)文件。由于java其跨平台的特点,系统通过调用DLL文件(或SO文件),即可实现WINDOWS平台下java对文件系统功能的调用。系统设计利用eclipse开发工具,分析了eclipse平台体系结构以及eclipse插件的安装及使用。最后,通过eclipse环境下java及C环境的配置以及JNI技术,实现了PC机下java对文件系统部分功能调用,如读文件、写文件、读文件系统信息、读文件目录、修改文件属性、创建文件夹、文件重命名。