Exe, созданный Exe4j с зависимостью от внешних библиотек - PullRequest
1 голос
/ 17 февраля 2020

Мы пытаемся обернуть наш jar-файл exe4j в exe-файл. Наш jar зависит от нескольких библиотек jar, которые хранятся в папке libs. Мы не хотим распространять файл jar, только библиотеки exe и jar в папке libs. Для выполнения приложения мы используем собственную JRE.

Вот файловая структура приложения:

/java 
/libs 
application.exe

В типе проекта мы используем опцию «Jar in exe mode». Exe генерируется, но его выполнение не удалось. В файле errors.log я вижу, что java .lang.NoClassDefFoundError: org / slf4j / LoggerFactory Если я добавлю slf4j.jar в classpath, сгенерированный exe будет больше, и в файле error.log будет еще один NoClassDefFoundError.

Если я попробую «Обычный режим» и укажу папку с внешними библиотеками - приложение работает хорошо. Но указанная папка недоступна для «Jar в exe-режиме».

Есть ли способ получить exe, который оборачивает файл jar и использует библиотеки jar, которые хранятся во внешней папке libs, без указания их вручную и упаковать их в exe?

1 Ответ

0 голосов
/ 17 февраля 2020

Мы не хотим распространять файл jar, только библиотеки exe и jar в папке libs.

Файл JAR в сгенерированном исполняемом файле никак не защищен, потому что он будет извлечен в каталог% TEMP% при запуске исполняемого файла. Вот почему вы можете просто использовать обычный режим и поместить файл JAR в каталог lib.

Чтобы защитить файл JAR, используйте обфускатор, такой как proguard.

...