gpt4 book ai didi

java - Files.probeContentType 在两台相似的机器上表现不同

转载 作者:行者123 更新时间:2023-11-29 04:55:17 26 4
gpt4 key购买 nike

在硬盘驱动器故障需要重新安装操作系统之前,我在使用 Windows 7 的计算机上完成了基于 Java 8u45 的项目的所有开发。据我所知,一切都应该与我之前的设置非常相似,但现在我注意到在我的新安装上运行应用程序时出现错误,但同样的错误并没有发生在共同 worker 的机器也运行 Windows 7。问题是 Files.probeContentType(Path)似乎总是在我的机器上返回 null,而它在另一台(和我以前的)机器上返回预期的 MIME 类型。

我们俩都在用JDK 8u45(项目暂时绑定(bind)这个版本)。我的同事使用的是 IDEA 14,而我使用的是 IDEA 15。还应该注意的是,它似乎与 IDE 无关,因为我在从已编译的可执行文件(使用 Launch4j)运行应用程序时遇到了同样的问题, 即使有捆绑的 JRE)

我的开发环境会返回 null 有什么原因吗?对于方法 Files.probeContentType , 但另一台具有相同操作系统版本的机器不会?

最佳答案

在 Windows 上,Files.probeContentType 使用您的文件扩展名来确定实际的 MIME 类型。找到此扩展名后,它会在 Windows 注册表中查找文件扩展名。您可以在 HKEY_CLASSES_ROOT 注册表配置单元中找到文件扩展名列表。如果此配置单元包含您要求的文件扩展名的键,它将在该键中查找名为 Content Type 的字符串。 probeContentType 的返回值就是这里存储的值。

由于您的 Windows 版本是全新安装的,因此其注册表包含的条目将少于您的同事正在使用的条目。可能是您的系统根本不包含您请求的扩展名的条目,因此 probeContentType 无法确定有效的 MIME 类型,并返回 null。

关于java - Files.probeContentType 在两台相似的机器上表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com