java.net.URLConnection.guessContentTypeFromName
はファイルの拡張子からMIME Typeを特定するメソッドです。このメソッドはJava8以前ではデフォルトで、$JAVA_HOME/lib/content-types.properties
を参照していました。
しかし、Java9以降では、$JAVA_HOME/lib/
にcontent-types.properties
は有りません。
この辺りの事情は、Java9で削除された機能に関する解説に書かれています。
Removed APIs, Features, and Options
詳細はこちら。
ちなみに本当に削除された訳では無く、jdk/src/java.base/windows/classes/sun/net/www/
配下に、ソースと一緒におかれています。
jdk10/master: 4554a9ae19ef jdk/src/java.base/windows/classes/sun/net/www/content-types.properties
なお、システムプロパティのcontent.types.user.table
に設定したパスのファイルに定義を書いておくと、任意のMIME Typeを追加することができる点は変わっていません。
以上、意外なところでJava9の変更点に引っかかって、「ファイルが無い!」と1時間溶かした記録です。モジュール化、難しい。
Java 9 Modularity: Patterns and Practices for Developing Maintainable Applications
- 作者: Sander Mak,Paul Bakker
- 出版社/メーカー: O'Reilly Media
- 発売日: 2017/09/07
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 森本利博,武井優己,SPY,久保田祐史,大倉香織,石川雅之,袴田類,山下和彦,牧大輔,穴井宏幸,加藤隆一郎,加藤佑典,金昌熙,佐藤健太,のざきひろふみ,うらがみ,久田真寛,ひげぽん,池田拓司,はまちや2,竹原,牟田裕太郎,粕谷大輔,陶山嶺,長谷川智希,石田和太郎,小林純一,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2017/10/24
- メディア: 大型本
- この商品を含むブログを見る