Java:关于import语句中使用的路径的愚蠢的新手问题

时间:2013-06-25 23:50:33

标签: java

我正在研究这个例子:

http://www.vogella.com/articles/JavaPDF/article.html

在我的档案中,我有:

package com.mycompanyname.mydirectory;

import com.mycompanyname.OneOfMyClasses;
import com.itextpdf.text.Document;
...

 public class MyClass {
     ...
 }

一切都很好。我不明白的是,因为我只是直接从上面的链接复制了导入语句的iText部分 - 为什么com.itextpdf.text.Document有效?

我的意思是,如果我查看目录com.mycompanyname,我可以看到OneOfMyClasses.java

但直接在com中,没有itextpdf目录(尽管我的用户可能没有权限查看它(?))。

希望有人能帮我理解我在这里缺少的东西。导入是否指向我应该能够看到该类的特定目录?在iText使用的某个地方是否有不同的com目录,并且com.itextpdf.text指向那里? (如果是,目录所在的位置)?

我按照惯例在lib文件夹中安装了iText的jar文件,并确保它包含在类路径中。

4 个答案:

答案 0 :(得分:7)

这些类位于添加到类路径的JAR文件中:

  

使用“de.vogella.itext.write”包创建一个新的Java项目“de.vogella.itext.write”。创建一个文件夹“lib”并将 iText库(jar文件)放入此文件夹。 将jar添加到类路径

import语句将查看类路径中的任何目录树,其中包括编译时的当前目录(通常是项目中的src /目录)以及通过环境变量或JVM启动参数指定的任何目录。有关类路径,请参阅this

修改

每当您跨包使用类时,都需要导入。您定义的每个公共类/接口都在一个包中。如果您引用的任何内容属于另一个包,则需要将其导入。

JAR是包含目录和文件的zip文件。它与普通目录和文件相同,只是打包。

答案 1 :(得分:1)

它来自您在之前步骤中添加的iText依赖项(jar)。

答案 2 :(得分:1)

不一定 - 您也可以从图书馆等导入

事实上,Java将尝试搜索classpath。这是一些有用的documentation

答案 3 :(得分:1)

该类很可能是在JAR库中导入的。在这样的JAR文件中,类文件保存在导入时使用的精确包/文件夹结构中。