Java obtiene el tipo de archivo del contenido usando mimeutil que no funciona como se esperaba

En mi siguiente código:

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

La salida es siempre application / octet-stream sin importar qué tipo de archivo se elija, es decir, csv, xls, exe, etc.

Pero de acuerdo con el siguiente sitio:

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

debería mostrarse como ms-word o ms-excel, etc.

¿Cómo hacer que esto funcione? Todo lo que quiero es obtener el tipo de archivo del contenido del archivo (no utilizando una extensión de archivo que no es muy confiable). Estaba leyendo sobre otras opciones como tika que requiere demasiados archivos (como 20) que es demasiado para este único propósito y JMimeMagic que requiere apache-oro, que es un proyecto muerto, por lo tanto, tampoco me gusta la idea. Todas las demás soluciones parecen depender de la extensión de archivo que parece no ser confiable como se mencionó anteriormente.

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta