【发布时间】:2020-07-28 15:39:26
【问题描述】:
此页面上的链接 (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
一旦我通过 apt-get install ghostscript 安装了 Ghostscript,相同的代码运行良好(因为它现在从 /usr/lib/x86_64-linux-gnu/libgs.so.9.22 加载 .so)
问题:我应该将哪些最小文件集放到某个文件夹中,以便我可以成功链接到 Ghostscript 动态库 (.so),而无需在机器/容器上安装 Ghostscript?
UPD:在Windows下,这似乎是可能的,安装的/bin文件夹包含DLL和EXE文件;如果我将该 .dll 文件放入resources 下的win32-x86-64 文件夹中,JNA (通过 Ghost4j)正在拾取它,并且即使我删除了“官方”安装,Ghostscript 实例也可以正常工作)。我也希望 Linux 具有相同的行为(即自给自足、自包含 JAR 文件)。
【问题讨论】:
标签: linux ghostscript ghost4j