我想检查一个文件系统是ntfs还是fat32等等,当我想运行它时我得到了这个:
java.lang.UnsatisfiedLinkError: Unable to load library 'Kernel32': Native library (linux-x86-64/libKernel32.so) not found in resource path ([file:/home/nszabo/workspace/Vidux/bin/, file:/home/nszabo/workspace/Vidux/external/common/org-json-2010-12-28.jar, and so on...
我试过了:
java -Djava.library.path="VolumeInformation.java"> -jar /usr/share/java/jna.jar
Error: Could not find or load 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);
答案 0 :(得分:0)
在Linux中,您可以使用Runtime.exec()运行mount命令并解析输出以检查安装了哪些文件系统以及它们具有哪种类型。
答案 1 :(得分:0)
您正在尝试在Linux上运行Windows API函数。你需要调用适合linux的文件系统检查功能。
要这样做,需要单独的映射(getfsfile("/path/to/fs")
并查看返回结构中的fs_vfstype字段),或者您可以调用mount
命令作为进程并按照建议解析其结果@拉尔夫 - 间皮特。