7

如何设置DefaultFileSystemProvider使用,例如,JimfsFileSystemProvider?javadoc forFileSystems.getDefault()说我需要设置一个系统属性,但是当我尝试这样做时,我得到一个NoSuchMethodException

System.setProperty("java.nio.file.spi.DefaultFileSystemProvider",
                   "com.google.common.jimfs.JimfsFileSystemProvider");
FileSystems.getDefault();

堆栈跟踪:

java.lang.Error: java.lang.NoSuchMethodException: com.google.common.jimfs.JimfsFileSystemProvider.<init>(java.nio.file.spi.FileSystemProvider)
at java.nio.file.FileSystems$DefaultFileSystemHolder.getDefaultProvider(FileSystems.java:128)
....

我是否需要设置其他东西或者这是 jimfs 中的错误?

4

1 回答 1

4

的 javadocFileSystems.getDefault()声明:

...默认值FileSystemProvider是通过调用形式参数类型为的单参数构造函数来实例化的FileSystemProvider

由于JimfsFileSystemProvider没有这样的构造函数,您不能将其设置为默认文件系统。

这正是错误意味着您得到的含义:

java.lang.Error: java.lang.NoSuchMethodException: com.google.common.jimfs.JimfsFileSystemProvider.<init>(java.nio.file.spi.FileSystemProvider)

方法<init>是构造函数,没有找到带参数的构造函数java.nio.file.spi.FileSystemProvider

于 2014-09-10T11:09:27.707 回答