此页面上的链接 ( https://www.ghostscript.com/download.html ) 适用于 Linux x64,为您提供带有可执行二进制文件的 .tgz。
但是,在尝试通过 Ghost4J 将此二进制文件用作 .so 时(在将其重命名libgs.so
并放入适当的位置后),我总是收到如下错误:
java.lang.UnsatisfiedLinkError: /tmp/jna-100923095/jna3513656669313044092.tmp: cannot dynamically load executable
一旦我通过安装 Ghostscript apt-get install ghostscript
,相同的代码运行良好(因为它现在从 .so 加载/usr/lib/x86_64-linux-gnu/libgs.so.9.22
)
问题:我应该将哪些最小文件集放在某个文件夹中,以便我可以成功链接到 Ghostscript 动态库 (.so),而无需在机器/容器上安装 Ghostscript?
UPD:在Windows下,这似乎是可能的,/bin
安装的文件夹包含DLL和EXE文件;如果我将该 .dll 文件放入 .dll 下的文件win32-x86-64
夹中resources
,则 JNA (通过 Ghost4j)正在拾取它,并且 Ghostscript 实例工作正常,即使我删除了“官方”安装也是如此)。我也希望 Linux 具有相同的行为(即自给自足、自包含 JAR 文件)。