#java #windows #nullpointerexception #nio2 #tempdir
#java #Windows #исключение nullpointerexception #nio2 #tempdir
Вопрос:
При вызове Files.createTempDirectory("")
я получаю приведенное ниже исключение:
java.lang.NullPointerException
at sun.nio.fs.WindowsSecurityDescriptor.fromAttribute(WindowsSecurityDescriptor.java:353)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:220)
at java.nio.file.Files.newByteChannel(Files.java:315)
at java.nio.file.Files.createFile(Files.java:586)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
at java.nio.file.Files.createTempFile(Files.java:803)
Ни один из примеров использования Files.createTempDirectory("")
, которые я нашел, не был передан ни в одном FileAttribute
s .
Я пробовал, Files.createTempDirectory("", new FileAttribute<?>[] { });
но это тоже не помогло.
Я использую 32-разрядный JDK 7 в системе Windows 7. Я не являюсь локальным администратором на компьютере.
Кто-нибудь сталкивался с этим?
ОБНОВЛЕНИЕ 1:
Files.createTempFile(this.tempDir.toPath(), "tmpFile", "");
похоже, та же проблема.
В качестве обходного пути я перешел к com.google.common.io.Files.createTempDir()
.
Комментарии:
1. Просто попробовал это с JDK1.7.0_07, проблем не возникло. Какой из них вы используете?
2. Я использую 1.7.0_11-b21. Вероятно, это как-то связано со средой Windows 7 у моего работодателя.
3. Похоже, это все еще происходит в Java 1.8 / Windows 7.
Ответ №1:
Вы пробовали использовать Files.createTempDirectory(null)
вместо Files.createTempDirectory("")
. В документации вы можете прочитать, что можно передать префикс как нулевой объект.