Я хочу скомпилировать маленькое JAVA-приложение в исполняемый файл Windows.
Приложение является очень небольшим, только единственный основной класс, но это использует ПОИ Apache.
Когда я компилирую его, все хорошо работает, пока я поместил Банку ПОИ в аргумент пути к классу.
Но когда дело доходит до соединения, GCJ не может разрешить ссылки классы в пакете ПОИ. Сообщения все как это:
undefined reference tp 'org::apache::poi:hssf:usermodel:HSSFWorkbook::class$'
Что я должен сделать для соединения моего приложения?
Вы должны составить импортируемые банки в .so
библиотеки отдельно. Обязательно предоставьте банки в - Classath
, как при составлении библиотек, как при составлении вашего кода.
Пример, где я составляю библиотеку GNU Crypto:
gcj --classpath=source/:libs/gnu-crypto.jar -fjni -c libs/gnu-crypto.jar -o libs/gnu-crypto.o
gcj -shared -fPIC -o libs/libgnu-crypto.o libs/gnu-crypto.o -o libs/libgnu-crypto.so
Наконец, выполните исполняемый файл через скрипт оболочки, ссылающийся на путь библиотеки. Например:
#!/bin/sh
export LD_LIBRARY_PATH=./libs/:$LD_LIBRARY_PATH
exec ./MyJavaApp $*