gpt4 book ai didi

java - 为什么 GCJ 找不到我导入的包中的类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:42 27 4
gpt4 key购买 nike

我想将小型 Java 应用程序编译为 Windows 可执行文件。

应用程序很小,只有一个主类,但它使用 Apache POI。

当我编译它时,一切正常,只要我将 POI Jar 放入类路径参数中即可。

但是当涉及到链接时,GCJ 无法解析对 POI 包中类的引用。消息都是这样的:

undefined reference tp 'org::apache::poi:hssf:usermodel:HSSFWorkbook::class$'

要链接我的应用程序,我必须做什么?

最佳答案

你必须将导入的 Jars 单独编译成 .so 库。确保在编译库和编译代码时都在 --classpath 中提供 Jars。

一个例子,我正在编译 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 $*

关于java - 为什么 GCJ 找不到我导入的包中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com