我安装了以下版本的 OpenJDK:
java-1.11.0-openjdk-amd64 1101 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
在 Lubuntu 18.04 中使用 PDFsam 时出现以下错误:
INFO [12:15:47]: Starting PDFsam
INFO [12:15:48]: Transparent windows not supported by the platform
INFO [12:15:48]: Configuring Sejda 3.2.38
INFO [12:15:48]: Gestarted in 1 second
INFO [12:15:57]: 3.pdf loaded
INFO [12:15:57]: 4.pdf loaded
INFO [12:15:57]: 5.pdf loaded
INFO [12:15:58]: Starting task (org.sejda.impl.sambox.MergeTask@81b1817) execution.
WARN [12:15:59]: New fonts found, font cache will be re-built
WARN [12:15:59]: Building on-disk font cache, this may take a while
ERROR [12:15:59]: Unexpected error
java.lang.NoClassDefFoundError: Could not initialize class org.sejda.sambox.pdmodel.font.PDType1Font
at org.sejda.impl.sambox.util.FontUtils.<clinit>(FontUtils.java:74)
at org.sejda.impl.sambox.component.PDDocumentHandler.close(PDDocumentHandler.java:231)
at org.sejda.common.ComponentsUtility.nullSafeClose(ComponentsUtility.java:63)
at org.sejda.common.ComponentsUtility.nullSafeCloseQuietly(ComponentsUtility.java:49)
at org.sejda.impl.sambox.MergeTask.closeResources(MergeTask.java:232)
at org.sejda.impl.sambox.MergeTask.after(MergeTask.java:237)
at org.sejda.core.service.DefaultTaskExecutionService.actualExecution(DefaultTaskExecutionService.java:151)
at org.sejda.core.service.DefaultTaskExecutionService.execute(DefaultTaskExecutionService.java:71)
at org.sejda.core.service.DefaultTaskExecutionService.execute(DefaultTaskExecutionService.java:58)
at org.pdfsam.task.TaskExecutionController.lambda$request$0(TaskExecutionController.java:87)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
LaunchPad 上的已知 bug错误 1768565 关于OpenJDK 11 和 PDFSaM Ubuntu 软件包之间的兼容性损坏。
我找到了可行的解决方案。我们应该删除
pdfsam
Ubuntu-package 并从官方网站下载 pdfsam-basic:这不是第一次,因为 Scilab 也被 Java 破坏了(请参阅此问答)。
因此 Ubuntu 18.04 LTS 尚未准备好用于企业和教育部署。
解决方案在这里:
https://bugs.launchpad.net/ubuntu/+source/pdfsam/+bug/1768565
一旦默认 java 版本设置为 java-8,该错误已在 Ubuntu 18.04(Bionic Beaver 64 位)中修复。无需降级或卸载 java-10 或 java-11。Ubuntu 18.04 的默认 java 是 java-11。PDFSAM basic 3.35 或 3.37 是用 java-8 编写的,仅适用于 java-8。
在 PDFSAM Split and Merge Basic Edition 3.3.5 OpenJDK 运行时环境 1.8.0_181-8u181-b13-1ubuntu0.18.04.1-b13 上测试
在终端运行 sudo update-alternatives --config java
选择/键入 2(或针对 java-8 显示的任何序列号)。按 Enter 将默认的 java 版本设置为 java-8。