解决方案 »

  1.   

    我的理解是FileSystem.getFileSystem(),就是java调用本地的文件系统。所有的java程序都是在JVM里实现的。
      

  2.   

    是的,在 JVM 中实现的,实现代码是 C 语言的,截录如下:Windows 平台
    #include <windows.h>
    #include "jni.h"
    #include "jni_util.h"extern jboolean onNT;
    extern void initializeWindowsVersion();JNIEXPORT jobject JNICALL
    Java_java_io_FileSystem_getFileSystem(JNIEnv *env, jclass ignored)
    {
        initializeWindowsVersion();
        if (onNT) {
            return JNU_NewObjectByName(env, "java/io/WinNTFileSystem", "()V");
        } else {
            return JNU_NewObjectByName(env, "java/io/Win32FileSystem", "()V");
        }
    }Linux/Unix 实现
    #include "jni.h"
    #include "jni_util.h"
    #include "java_io_FileSystem.h"
    JNIEXPORT jobject JNICALL
    Java_java_io_FileSystem_getFileSystem(JNIEnv *env, jclass ignored)
    {
        return JNU_NewObjectByName(env, "java/io/UnixFileSystem", "()V");
    }上面的 java/io/WinNTFileSystem、java/io/Win32FileSystem、java/io/UnixFileSystem 都是由 C 语言实现的
      

  3.   


    类都是 Java 中的类,但全部都是 natvie 方法,实现全部都是 C 语言的。