2013-04-18 3 views
-1

У меня есть файл jar, который ссылается на 6 других банок через файл манифеста.Ссылка на банку в банке

Теперь я хочу попытаться скомпилировать банки в один файл jar, потому что я хочу, чтобы они были кэшированы, поэтому апплет не имеет большого времени загрузки, поскольку один из этих банок необходим, а один большое время ожидания, чтобы загрузить все необходимые файлы, а затем сохранить их в кеше.

Я попытался включить ссылки на файлы Jar в сборке, к сожалению, все это делает причиной ошибки java.lang.NoClassDefFoundError, поэтому мне пришлось добавить файл манифеста.

Каков наилучший/простой способ достичь этого? Я использую eclipse, а не строю с муравьем.

+0

* «Я хочу, чтобы они были кэшированы, поэтому апплет не имеет большого времени загрузки, поскольку требуется одна из этих банок». Это мало или совсем не имеет смысла. НАПРИМЕР. «Живая банка» займет в 4 раза больше, чем 4 отдельных банки. Вам лучше было бы развернуть апплет с помощью JWS/JNLP и указать другие Jars как «ленивые» загрузки. –

+0

Причина в том, что приложение будет ежедневно использоваться клиентами, я хочу, чтобы данные кэшировались, а не загружались 2 МБ при каждом открытии приложения. – Corne

+0

Кэширование классов - это поведение ** по умолчанию ** как стандартных развернутых апплетов *, так и JNLP. Это не вопрос. –

ответ

0

Использование затмения при экспорте вы можете создать с возможностью пакета необходимых библиотек в генерации JAR

Делая это затмение использует свой собственный загрузчик класса и ссылки на все файлы, которые упакованы в одном банке.

+0

Infact, он упакован в банку. Но все же вы должны ссылаться на него с манифестом. Как только ссылка на манифест исчезнет, ​​я получаю java.lang.NoClassFoundError .. – Corne

+1

Обратите внимание, что только доверенный апплет может использовать пользовательский класс-загрузчик. –

Смежные вопросы