12

我正在尝试使用 pdfbox 编写一个简单的 pdf 文件,但问题是我收到错误:

cannot find symbol class PDDocument

我已将 jar 文件下载到程序存在的同一文件夹中。如何修复此编译错误?

package org.apache.pdfbox.pdmodel.PDDocument;

import java.io.*;
import org.apache.pdfbox.pdmodel.PDDocument;

public class pdf
{
public static void main(String args[])
{
}
}
4

3 回答 3

12

将 jar 放在同一个文件夹或包中不会将其添加到类路径中。在运行 java 程序时,您需要在类路径中提及 jar 的路径。这是它的语法:

编译:

javac -classpath .;yourjar.jar src/your/package/*.java

跑步

java -classpath .;yourjar.jar src/your/package/yourprogrammeclassname
于 2013-05-12T05:56:50.883 回答
2

您需要确保 JAR 文件位于类路径中。

于 2013-05-12T05:55:14.927 回答
2

有一个类似的问题我发现我在 java 源代码的导入行上没有正确的语法

进行如下编译(在 Windows 上):

javac -cp .;commons-io-2.4.jar AgeFileFilterTest.java

在与 AgeFileFilterTest.java 相同的文件夹中使用 commons-io-2.4.jar

我收到错误:

import org.apache.*;
^
AgeFileFilterTest.java:24: error: cannot find symbol
            displayFiles(directory, new AgeFileFilter(cutoffDate));
                                        ^

这令人费解,因为似乎一切都已到位。jar 在文件夹中,在类路径中定义,在检查 jar 内容时,我可以看到引用的内容 - 使用 7zip 打开 jar 文件并可以看到:

commons-io-2.4.jar\org\apache\commons\io\filefilter\AbstractFileFilter.class

然后我读了一些帖子“你不导入类”,这让我想到了导入语法......

我将其更改为:

import org.apache.*;

将其更改为:

import org.apache.commons.io.filefilter.*;

并且 wala 编译错误消失了:javac -cp .;commons-io-2.4.jar AgeFileFilterTest.java

和程序使用

java -cp .;commons-io-2.4.jar AgeFileFilterTest
于 2015-08-14T02:27:44.817 回答