Jai*_*Jai 2 java imagemagick ghostscript ghost4j
我已经在我的 64 位 linux 机器上安装了 64 位的 ghostscript。我正在使用 ghost4j-0.5.0.jar 将 pdf 文件转换为 tiff 文件。我写了一个java程序,它将pdf文件转换为tiff文件。这在 Windows 上运行得非常好,但是当我想到将它移动到 linux 机器时,我收到以下错误。
“线程“main”中的异常java.lang.UnsatisfiedLinkError:无法加载库“gs”:libgs.so:无法打开共享对象文件:没有这样的文件或目录”
我检查了 lib 文件夹,但在 lib 文件夹中找不到 libgs.so 文件。我不确定从哪里获取该文件。
任何人都可以帮我解决这个问题吗?
在这里发布这个我感到有点内疚,因为它可能更好地服务于 ServerFault 或其中一个 Linux 主板,而且这个问题已经超过 6 个月了,但我整天都在用头撞墙,终于找到了解决方案问题,我想其他人可能会从中受益。
系统:Windows 7和CentOS 6.5
使用: Ghostscript 9.14
一点背景故事:
就像 OP 一样,我一直在 Windows 上运行一个 ghostscript 程序来将 PDF 转换为一系列图像。这很好用,直到我需要切换到 Linux 并运行该程序,并且我需要转换的 PDF 中约有 5% 出现了error cannot decode code stream. 我意识到我在 Windows 上使用了更新版本的 ghostscript。(由于通过 yum 安装,Windows 上的 9.14 与 CentOS 上的 8.70 相比)。
我删除了旧版本yum remove ghostscript。接下来,我发现安装最新版 Ghostscript 的最简单方法是从这里下载并编译。由于我使用 yum 删除了以前版本的 ghostscript,因此我不得不更新链接usr/bin以指向usr/local/bin/gswith ln -s /usr/local/bin/gs /usr/bin/gs。一切就绪,所以我想,我试图运行我的程序,然后砰,错误!
解决问题:
所以现在我收到了错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'gs': libgs.so: cannot open shared object file: No such file or directory
我在这里看到一个帖子,上面说要获得必要的信息,libgs.so我需要返回并使用命令将源重新构建为共享库make so。我这样做了,然后将ghostscript文件夹中目录libgs.so.9.14下sobin的文件复制到/usr/lib. 在该目录下,我创建了一个libgs.so使用命令的符号链接ln -s /usr/lib/libgs.so.9.14 /usr/lib/libgs.so。
完成后,我需要更新我的ld_library_path但发现我这样做时更改不是全局的,因此我找到了有关如何设置全局库路径的Unix 和 Linux 帖子。基本上要这样做,您需要使用.conf文件/etc/ld.so.conf.d/路径添加文件。我这样做vi /etc/ld.so.conf.d/libgs.conf并添加/usr/lib/libgs.so到文件中。最后我跑了ldconfig所以保存更改。
域名注册地址:
从源下载最新版本的 Ghostscript:wget http://downloads.ghostscript.com/public/ghostscript-9.14.tar.gz
解压焦油: tar -xzf ghostscript-9.14.tar.gz
cd ghostscript-9.14
./configure
make<-- 您可能可以跳过并转到make so,我是按此顺序进行的,因此我将保持原样。
make install
make so
如果您使用 yum 删除了以前的版本 ln -s /usr/local/bin/gs /usr/bin/gs
cp ghostscript-9.14/sobin/libgs.so.9.14 /usr/lib
ln -s /usr/lib/libgs.so.9.14 /usr/lib/libgs.so
vi /etc/ld.so.conf.d/libgs.conf
在新的 libgs.conf 文件中:/usr/lib/libgs.so并用esc, :,保存wq。
ldconfig 并做了。
运行您的转换程序。
希望这会有所帮助并且不会太混乱。我还不是 linux 专家(还),所以我可能会用上述命令做一些不必要的工作,但我想做到彻底。
| 归档时间: |
|
| 查看次数: |
7421 次 |
| 最近记录: |