Java получает тип файла из содержимого с использованием mimeutil не работает должным образом

В моем следующем коде:

MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
File f = new File ("c:\\temp\\mime\\java.exe");
Collection mimeTypes = MimeUtil.getMimeTypes("c:\\temp\\mime\\java.exe");
MimeType m = mimeTypes.toArray(new MimeType[mimeTypes.size()])[0];
System.out.println(m);

Выходными данными всегда является application / octet-stream, независимо от того, какой тип файла выбран, например csv, xls, exe и т. Д.

Но по данным следующего сайта:

http://www.rgagnon.com/javadetails/java-0487.html

должно отображаться как ms-word или ms-excel и т. д.

Как заставить это работать? Все, что я хочу, это просто получить тип файла из содержимого файла (не используя расширение файла, которое не очень надежно). Я читал о других опциях, таких как tika, которая требует слишком много файлов (например, 20), что слишком много для этой единственной цели, и JMimeMagic, которая требует apache-oro, который является мертвым проектом, поэтому я неидея тоже не нравится. Кажется, что все другие решения полагаются на расширение файла, которое, как упоминалось выше, не является надежным.

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос