java.lang.NoClassDefFoundError: Could not initialize class org.ghost4j.GhostscriptLibrary

java.lang.NoClassDefFoundError: Could not initialize class org.ghost4j.GhostscriptLibrary

我正在尝试在我的 Linux 服务器上安装 Ghostscript,以便可以使用 Ghost4j 的 PDF 实用程序。

我用 LinuxBrew 安装了 Ghostscript,并将 Ghostscript 二进制文件的路径添加到 $PATH。所以在这一点之后,我收到以下错误:

java.lang.UnsatisfiedLinkError: Unable to load library 'gs': Native library (linux-x86-64/libgs.so) not found in resource path 
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Library$Handler.<init>(Library.java:147)
at com.sun.jna.Native.loadLibrary(Native.java:412)
at com.sun.jna.Native.loadLibrary(Native.java:391)
at org.ghost4j.GhostscriptLibraryLoader.loadLibrary(GhostscriptLibraryLoader.java:39)
at org.ghost4j.GhostscriptLibrary.<clinit>(GhostscriptLibrary.java:36)
at org.ghost4j.Ghostscript.initialize(Ghostscript.java:323)

在这一步,它能够加载并执行到 GhostscriptLibrary。

经过一些研究,我在这个线程 Unable to load library 'gs': libgs.so: cannot open shared object file: No such file or directory 之后添加了符号链接 ln -s path/to/Ghostscript/lib/libgs.so.9.22 /usr/lib/libgs.so,这解决了之前的错误,但给出了另一个错误:

java.lang.NoClassDefFoundError: Could not initialize class org.ghost4j.GhostscriptLibrary at 
org.ghost4j.Ghostscript.initialize(Ghostscript.java:323)

包含 class GhostscriptLibrary 的 jar 文件 (ghost4j-1.0.1.jar) 位于 class 路径中,它在我的 Mac 上本地运行完全正常。

我正在使用 Ghostscript 9.22 和 Ghost4j 1.0.1

任何帮助都会很棒 :)

我能够通过卸载 Ghostscript 并按照本页 http://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html 上的说明重新安装并设置环境变量 LD_LIBRARY_PATH 以包含 .so 文件的路径来解决上述错误。

这是一个无法正确加载本机库的问题,无论如何都会导致第二个错误。