Затмение: упаковка JAR с местными жителями - PullRequest
4 голосов
/ 25 октября 2011

Я создал Java-игру с использованием LWJGL, которая требует некоторых собственных файлов. Все отлично работает в Eclipse. Я хочу включить DLL-файлы в JAR-файл, но каждый раз, когда я пытаюсь, LWJGL не может найти туземцев. Я уже пробовал использовать jarsplice или fatjar, но безрезультатно. Я знаю, что Minecraft также запрограммирован с использованием LWJGL, и ему каким-то образом удается загрузить нативы из другой папки.

Есть ли способ упаковать собственные файлы в файл JAR и позволить сторонней библиотеке, такой как LWJGL, получить к ним доступ? Если нет, то как бы я подошел к загрузке их из внешней папки?

РЕДАКТИРОВАТЬ: Каким-то образом это работало с туземцами в том же каталоге, что и файл JAR. Я все еще хотел бы получить какое-то объяснение и, возможно, некоторые другие методы.

1 Ответ

2 голосов
/ 25 октября 2011

Я только что столкнулся с этим несколько недель назад. Увы, у меня нет ссылок, но я обнаружил, что вы не можете ссылаться на собственные файлы, хранящиеся внутри файла JAR. Вы должны либо программно извлечь их, прежде чем ссылаться на них, либо установить их вместе с файлом JAR.

Я выбрал второй вариант и просто попросил Eclipse упаковать всю коллекцию в zip-файл для распространения.

Для первого варианта, одним из мест для поиска будет исходный код для JNA. Они отправляют файлы DLL / исполняемые файлы внутри своего файла JAR и извлекают их по запросу.

...