Java导入的包不存在

时间:2013-05-12 05:53:20

标签: java import compiler-errors classpath

我正在尝试使用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[])
{
}
}

3 个答案:

答案 0 :(得分:9)

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

编译:

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

运行

java -classpath .;yourjar.jar src/your/package/yourprogrammeclassname

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

按以下方式进行编译(在Windows上):

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

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

我收到了错误:

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