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)

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