Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java probeContentType()在OpenJDK 11上返回null_Java_File Io_Java 11 - Fatal编程技术网

Java probeContentType()在OpenJDK 11上返回null

Java probeContentType()在OpenJDK 11上返回null,java,file-io,java-11,Java,File Io,Java 11,对于OpenJDK 11上的文件(MIME类型不由其文件名指示),当它在OpenJDK 8(Linux x64上)上工作时,Files.probeContentType()似乎会返回null。原因是什么 注意:它可能适用于类型由其名称指示的文件,例如,“test.pdf”将产生“application/pdf”,但将文件重命名为“test”将产生null文件类型检测主要是平台特定的,不被认为是可靠的。例如,GnomeFileTypeDetector在JDK 8中可用,但仅在Linux系统上工作

对于OpenJDK 11上的文件(MIME类型不由其文件名指示),当它在OpenJDK 8(Linux x64上)上工作时,
Files.probeContentType()
似乎会返回
null
。原因是什么


注意:它可能适用于类型由其名称指示的文件,例如,“test.pdf”将产生“application/pdf”,但将文件重命名为“test”将产生
null

文件类型检测主要是平台特定的,不被认为是可靠的。例如,
GnomeFileTypeDetector
在JDK 8中可用,但仅在Linux系统上工作

OpenJDK开发人员决定从JDK(已经在JDK 9中)中删除
GnomeFileTypeDetector
MagicFileTypeDetector
,请参阅

Windows上可用的检测器
MimeTypesFileTypeDetector
(Linux上)或
RegistryFileTypeDetector
只实现从文件扩展名到MIME类型的映射,但不检查文件的实际内容


(注意:所有检测器实现都可以在包
sun.nio.fs
中找到(或不找到)

文件类型检测主要是平台特定的,不可靠。例如,
GnomeFileTypeDetector
在JDK 8中可用,但仅在Linux系统上工作

OpenJDK开发人员决定从JDK(已经在JDK 9中)中删除
GnomeFileTypeDetector
MagicFileTypeDetector
,请参阅

Windows上可用的检测器
MimeTypesFileTypeDetector
(Linux上)或
RegistryFileTypeDetector
只实现从文件扩展名到MIME类型的映射,但不检查文件的实际内容


(注意:在包
sun.nio.fs
中找到(或未找到)所有检测器实现)

无法复制。我使用Oracle 1.8.0、OpenJDK 11.0.2和OpenJDK 15.0.1+9在窗口上运行了
Files.probeContentType(path.get(“test.pdf”)
,它们都返回了
application/pdf
@Andreas,这是特定于平台的。在Windows上,有一个
RegistryFileTypeDetector
,它根据映射到Windows注册表中的应用程序的文件扩展名检测类型。@Andreas,在Windows上,您可以通过将PDF文件重命名为“test”而不带扩展名来复制此类型。(唯一)可用检测器不检查内容,但无法在注册表中查找(不存在)扩展名。无法复制。我使用Oracle 1.8.0、OpenJDK 11.0.2和OpenJDK 15.0.1+9在窗口上运行了
Files.probeContentType(path.get(“test.pdf”)
,它们都返回了
application/pdf
@Andreas,这是特定于平台的。在Windows上,有一个
RegistryFileTypeDetector
,它根据映射到Windows注册表中的应用程序的文件扩展名检测类型。@Andreas,在Windows上,您可以通过将PDF文件重命名为“test”而不带扩展名来复制此类型。(唯一)可用检测器不检查内容,但无法在注册表中查找(不存在)扩展名。