Java obter o tipo de arquivo do conteúdo usando mimeutil não está funcionando como esperado

No meu código a seguir:

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);

A saída é sempre application / octet-stream, não importa o tipo de arquivo escolhido, por exemplo, csv, xls, exe, etc.

Mas de acordo com o seguinte site:

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

ele deve mostrar como ms-word ou ms-excel etc.

Como fazer isso funcionar? Tudo que eu quero é apenas pegar o tipo de arquivo do conteúdo do arquivo (não usando a extensão de arquivo que não é muito confiável). Eu estava lendo sobre outras opções, como o tika, que requer muitos arquivos (como 20), o que é demais para este único propósito, e o JMimeMagic, que requer o apache-oro, que é um projeto morto, portanto, também não gosto da ideia. Todas as outras soluções parecem confiar na extensão de arquivo que parece não ser confiável como mencionado acima.

obrigado

questionAnswers(2)

yourAnswerToTheQuestion