7

DefaultFileSystemProviderたとえば、 を使用するように設定するにはどうすればよいJimfsFileSystemProviderですか? のjavadocにFileSystems.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

javadoc には次のようにFileSystems.getDefault()記載されています。

...デフォルトFileSystemProviderは、仮パラメーターの型が である 1 つの引数のコンストラクターを呼び出すことによってインスタンス化されますFileSystemProvider

JimfsFileSystemProviderにはそのようなコンストラクタがないため、デフォルトのファイル システムとして設定することはできません。

これは、まさにエラーが意味するものです。

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

メソッド<init>はコンストラクターであり、 parameters を持つコンストラクターが見つかりませんjava.nio.file.spi.FileSystemProvider

于 2014-09-10T11:09:27.707 に答える