создание java-приложения в одном jar

Если у меня есть java-проект, состоящий из нескольких различных типов файлов (картинки, звук и т.д.) и нескольких зависимостей jar, какой хороший способ упаковать все это в один единственный jar, который можно просто дважды щелкнуть?

Я знаю, что сами по себе jar довольно тупые, поскольку они не ищут внутри себя файлы, от которых они зависят (это я понял только после небольшого разочарования (преуменьшение)). -- Если jar A зависит от классов, содержащихся в jar B, то поместить jar B внутрь jar A не получится. Jar A должен находиться в том же каталоге, что и jar B.

... Теперь я знаю, что могу просто извлечь все файлы из всех других jar и поместить все в тот же каталог. Это будет вроде как работать, но я не хочу этого делать, потому что: 1. Это было бы беспорядочно и 2. Это все равно не решит проблему необходимости иметь звуковые файлы в том же каталоге, что и финальный jar. (По какой-то причине звуковые файлы ведут себя точно так же, как внутренние банки)

По сути, я просто хочу сделать так, чтобы файлы, от которых зависит мое приложение, не были назойливо заметны и показны. Поэтому, если бы было какое-то решение, где я мог бы поместить все в jar и сделать его единственным файлом, необходимым для запуска всей программы, это было бы оптимально. Но я готов принять творческие/изобретательные способы обойти эту проблему, например, пакетный скрипт в родительском каталоге, выполняющий jar или что-то в этом роде. (Я говорю "или что-то в этом роде", потому что такой сценарий будет работать только в операционных системах windows. ...вы понимаете, о чем я!)

5
задан Pojo 28 November 2011 в 19:10
поделиться