gpt4 book ai didi

java - Matlab 2017a 是否改变了导入外部 java 类的方式?

转载 作者:行者123 更新时间:2023-11-30 02:30:45 24 4
gpt4 key购买 nike

我从 Matlab 调用 PDFBox 来计算 PDF 中有多少页。 Matlba 2016b 及更早版本的一切都运行良好。我可以毫无问题地导入库并加载 PDF:

import org.apache.pdfbox.pdmodel.PDDocument;
pdfFile = PDDocument.load(filename);
<小时/>

当我在 2017a 运行同样的事情时,出现以下错误:

No method 'load' with matching signature found for class 
'org.apache.pdfbox.pdmodel.PDDocument'.

我可以在导入后更改行以使函数签名匹配:

jFilename = java.lang.String(filename);
pdfFile = PDDocument.load(jFilename.getBytes());

但是,这会导致 PDFBox 在我调用 load 时出现问题:

Java exception occurred:
java.io.IOException: Error: End-of-File, expected line
at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1111)
at org.apache.pdfbox.pdfparser.COSParser.parseHeader(COSParser.java:1874)
at org.apache.pdfbox.pdfparser.COSParser.parsePDFHeader(COSParser.java:1853)
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:242)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1093)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1071)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1053)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1038)

无论我尝试加载哪个 PDF,似乎都会发生此错误。我在 PDFBox 1.8.10 和 2.0.6 中遇到了同样的异常。

<小时/>

我还有两个问题:

  1. Matlab 2017a 是否改变了将字符串传递给 Java 的方式?我在 release notes 中没有看到任何内容对这个。
  2. 什么可能导致 PDFBox 错误? 2017 年,Matlab 仍使用 Java 1.7,因此我认为 PDFBox 的工作方式应该不会有任何差异。

最佳答案

您调用的方法似乎来自 PDDocument version 1.8.11

在最新版本中,PDDocument version 2.0.2用于接受文件名的方法签名不再存在。

将您的代码更改为以下内容,它应该可以工作。

pdfFile = PDDocument.load(java.io.File(filename));

关于java - Matlab 2017a 是否改变了导入外部 java 类的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44336634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com