我想将一个小型 Java 应用程序编译为 Windows 可执行文件。
该应用程序非常小,只有一个主类,但它使用 Apache POI。
当我编译它时,只要我将 POI Jar 放入类路径参数中,一切都会正常。
但是当涉及到链接时,GCJ 无法解析 POI 包中的类的引用。消息都是这样的:
undefined reference tp 'org::apache::poi:hssf:usermodel:HSSFWorkbook::class$'
我需要做什么才能链接我的申请?
您必须将导入的 Jars 编译为.so
单独的库。确保提供罐子--classpath
,无论是在编译库时还是在编译代码时。
一个例子,我正在编译 GNU 加密库:
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
最后,通过引用库路径的 shell 脚本执行可执行文件。例如:
#!/bin/sh
export LD_LIBRARY_PATH=./libs/:$LD_LIBRARY_PATH
exec ./MyJavaApp $*
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)