2009-05-22 3 views
3

У меня есть некоторый код:Альтернатива javax.activation.MimetypesFileTypeMap(). GetContentType (имя файла);

import javax.activation.MimetypesFileTypeMap; 
... 
.. 
. 
String filename = "foo.xls"; // Where this can be any file name .doc, .pdf or whatever 

String headerContentType = new MimetypesFileTypeMap().getContentType(filename); 

Это кажется javax.activation.MimetypesFileTypeMap класс внутри rt.jar который поставляется с библиотекой JRE System (jdk1.6.0_10), но не в jdk1.5.0

Я хотел бы чтобы избежать использования 1.6 библиотек. Кто-нибудь знает легкую и быструю альтернативу?

ответ

5

Это происходит от рамки activation. Это включено как стандарт в Java 6, но также доступно как отдельная загрузка (для использования с Java 1.4 и выше)

+0

Спасибо. Уродливая вещь с Java - это ощущение добавления миллионов строк кода в библиотеках только для одной простой функции. –

+0

Я думаю, что activ.jar относительно лаконичен, но я понимаю вашу точку зрения! –

2

Конкретный класс фактически является частью структуры активации java bean s;

JAF Download

Это не должно зависеть от 1.6, насколько я знаю. Поэтому просто загрузите банку и убедитесь, что у вас есть mimetypes.default, доступный в вашем пути к классам.

1

Я успешно использовал этот проект SubLuna, он кажется более полным, чем JAF. Он использует эту коллекцию типа mime: Shared MIME Info Specification, которая в хорошем состоянии (конечно, вам придется заменить файл, который поставляется с библиотекой).