我从 Apache 和 ChatGPI 获得了一个简单的代码,并将其修改为我自己的目的。给定一个简单的 txt 文件,它将其转换为 pdf。 联合国。由于缩进问题,SOVF UI 不允许我将代码粘贴到此处,因此我将其删除。
运行它时,给我这个有关日志记录未初始化的运行时异常:
线程“main”中的异常 java.lang.ExceptionInInitializerError 在 [电子邮件受保护]/org.apache.pdfbox.filter.FlateFilter.encode(FlateFilter.java:132) 在 [电子邮件受保护]/org.apache.pdfbox.filter.Filter.encode(Filter.java:101) 在 [电子邮件受保护]/org.apache.pdfbox.cos.COSOutputStream.close(COSOutputStream.java:139) 在 java.base/java.io.FilterOutputStream.close(FilterOutputStream.java:188) 在 [电子邮件受保护]/org.apache.pdfbox.cos.COSStream$1.close(COSStream.java:281) 在 [电子邮件受保护]/org.apache.pdfbox.pdmodel.PDAbstractContentStream.close(PDAbstractContentStream.java:1498) 在 [电子邮件受保护]/org.apache.pdfbox.pdmodel.PDPageContentStream.close(PDPageContentStream.java:37) 在 ConvertTxtToPDF/com.test.mahdad.TextToPdfConverter.main(TextToPdfConverter.java:48) 引起:java.lang.NullPointerException:无法调用“org.apache.commons.logging.Log.error(Object,java.lang.Throwable)”,因为“org.apache.pdfbox.io.IOUtils.LOG”为空 在 [电子邮件受保护]/org.apache.pdfbox.io.IOUtils.unmapper(IOUtils.java:273) 在 java.base/java.security.AccessController.doPrivileged(AccessController.java:318) 在 [电子邮件受保护]/org.apache.pdfbox.io.IOUtils。(IOUtils.java:62) ...还有8个
当我将 commons-logging-1.2.jar 添加到 Java 构建路径并再次运行它时,出现了此运行时异常。 }
Error occurred during initialization of boot layer
java.lang.module.ResolutionException: Module pdfbox.app contains package org.apache.commons.logging, module commons.logging exports package org.apache.commons.logging to pdfbox.app
请指教,谢谢。
添加了 commons-logging-1.2.jar 并有望解决该问题,但似乎与 PDFBox 存在冲突。
将
requires jdk.unsupported;
添加到我的 module-info.java
为我解决了这个问题。
org.apache.pdfbox.io.IOUtils
想要使用sun.misc.Unsafe
,在最新版本的java中默认情况下无法访问。
NullPointerException
是类初始化器在初始化其记录器之前尝试抱怨这一点的结果。