如何在Linux上从Java检测文件系统类型?

如何在Linux上从Java检测文件系统类型?,java,jna,Java,Jna,我想检查文件系统是否为ntfs或fat32等,当我想运行它时,我得到以下信息: java.lang.unsatifiedLinkError:无法加载库“Kernel32”:在资源路径中找不到本机库(linux-x86-64/libKernel32.so)([file:/home/nszabo/workspace/Vidux/bin/,file:/home/nszabo/workspace/Vidux/external/common/org-json-2010-12-28.jar,等等… 我试过这

我想检查文件系统是否为ntfs或fat32等,当我想运行它时,我得到以下信息:

java.lang.unsatifiedLinkError:无法加载库“Kernel32”:在资源路径中找不到本机库(linux-x86-64/libKernel32.so)([file:/home/nszabo/workspace/Vidux/bin/,file:/home/nszabo/workspace/Vidux/external/common/org-json-2010-12-28.jar,等等…

我试过这个:

java-Djava.library.path=“VolumeInformation.java”>-jar/usr/share/java/jna.jar
错误:无法找到或加载main class.usr.share.java.jna.jar

有什么问题吗?谢谢大家的帮助

更新:

这是我的代码,可以在其中删除错误

    Kernel32.INSTANCE.GetVolumeInformation(
            "C:\\", 
            lpVolumeNameBuffer, 
            nVolumeNameSize, 
            lpVolumeSerialNumber, 
            lpMaximumComponentLength, 
            lpFileSystemFlags, 
            lpFileSystemNameBuffer, 
            nFileSystemNameSize);
下一个:

public static void main(String[] args) {
    getFileSystemName();
}
最后一个是Kernel32.java:

public Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("Kernel32", Kernel32.class, WIN32API_OPTIONS);

在Linux中,您可以使用Runtime.exec()运行mount命令并分析输出,以检查安装了哪些文件系统以及它们的类型。

您正在尝试在Linux上运行Windows API函数。您需要调用适合Linux的文件系统检查函数


要做到这一点,要么需要一个单独的映射(并查看返回结构中的fs_vfstype字段),要么可以调用
mount
命令作为一个进程,并按照@ralf-m-petter的建议解析其结果。

我想,/usr/share/java/jna.jar可能有问题path.but中有一个jna.jar…ll命令:155001 2014年8月18日jna.jar当您发布抛出错误消息的代码时,它可能会有所帮助。错误消息看起来像是您试图在Linux设备上使用Windows API内核32?这是在Windows还是Linux上运行的?