Как заставить работать pdfsam в (L) Ubuntu 18.04?
У меня установлены следующие версии 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
Я получаю следующую ошибку при использовании PDFsam в Lubuntu 18.04:
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)
2 ответа
Это известная ошибка 1768565 на LaunchPad о нарушении совместимости между OpenJDK 11 и PDFSaM Ubuntu.
Я нашел рабочее решение. Мы должны удалить pdfsam
Ubuntu-пакет и загрузите pdfsam-basic с официального сайта:
sudo apt-get purge pdfsam
sudo apt-get autoremove
cd ~/Downloads
wget https://github.com/torakiki/pdfsam/releases/download/v4.0.1/pdfsam_4.0.1-1_all.deb
sudo apt-get install ./pdfsam_4.0.1-1_all.deb
Это не первый раз, так как Scilab тоже был взломан Java (см. Этот раздел вопросов и ответов).
Таким образом, Ubuntu 18.04 LTS еще не готова к развертыванию на предприятиях и в учебных заведениях.
Решение здесь:
https://bugs.launchpad.net/ubuntu/+source/pdfsam/+bug/1768565
Ошибка исправлена в Ubuntu 18.04 (Bionic Beaver 64 bit), если для java-версии по умолчанию установлено значение java-8. Нет необходимости понижать версию или удалять java-10 или java-11. По умолчанию java - это java-11 для Ubuntu 18.04. PDF 3.SAM 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-альтернативы --config java
Выберите / введите 2 (или любой другой серийный номер, указанный на java-8). Нажмите Enter, чтобы установить версию Java по умолчанию в java-8.