В моем проекте у меня было два плагина RCP. Один содержал Java Mail
jar и все его зависимости, включая activation.jar
. Другой содержал пользовательский код для составления и отправки писем.
Изначально я пытался использовать MimetypesFileTypeMap
во втором плагине и идентифицировать тип MIME, используя метод класса getContentType(String filename)
. Файл mime.types
был помещен в папку META-INF плагина. Проблема была почти такая же. Идентификация типов MIME отлично работала, когда приложение RCP запускалось из IDE, но не работала, когда оно запускалось как приложение экспорта RCP.
Но затем я узнаю, что Java Mail пытается идентифицировать типы MIME, но сам, например, при прикреплении файлов к электронной почте. И он использует свою зависимость activation.jar
. После этого мне нужно было решить вопрос о том, как заставить activation.jar
найти правильный mime.types
в области действия первого плагина.
Но единственный способ, который я нашел, - это переупаковка activation.jar
и добавление правильного mime.types
в папку jar META-INF. К сожалению, это решение не идеально, поскольку оно «взламывает» стороннюю библиотеку.