管理Java类路径(UNIX和Mac OS X) - 编程入门网
) {
Fraction f = new Fraction();
// ...
}
}
该类使用的是与 MainFrame 类所在的包不同的包中的 com.elharo.math.Fraction 类。源设置现在应该如图 3 所示(我将编译后的输出从之前的步骤中删除了。但这没有关系,因为我总是能重新编译它)。 图 3. 几个包的源结构 现在来看一下试着像以前一样编译 MainFrame.java 会出现什么情况。 清单 2. 编译 MainFrame.java
管理Java类路径(UNIX和Mac OS X)(4)时间:2011-01-04 IBM Elliotte Harold出现清单 2 中的错误的原因是,虽然 javac 知道到何处可以找到 MainFrame.java,但它却并不知道到何处可以找到 Fraction.java(您可能觉得它应该具备足够的智能来识别匹配的层次结构,但事实并非如此)。为了给它提供一些线索,必须指定源路径。用源路径指定编译器应该到哪些目录查找源文件的层次结构。在清单 2 中,源路径是 src。所以我使用了 -sourcepath 选项,如下所示:
现在再编译程序,就不会出现错误,并会产生如图 5 所示的输出。请注意 javac 也编译了文件 Fraction.java,Fraction.java 被当前编译的文件引用。 图 4. 多类输出 在源路径中编译多个目录 在源路径中可以有多个目录,使用冒号分隔各目录,但通常没有必要这么做。例如,若我想包括本地的 src 目录和用来存放另一个项目的源代码的 /Users/elharo/Projects/XOM/src 目录,我可以这样进行编译:
该命令并不编译在这两个层次结构中所找到的每个文件。它只编译由单个的 .java 文件直接或间接引用的文件,而此 .java 文件必须被编译。 更常见的情况是,为 .java 文件用一个单一的源目录,为类或放置了预编译的第三方库的 JAR 归档文件用多个目录。而这正是类路径的作用所在。 设置类路径 在大中型项目中,每次都要对每个文件进行重编译会非常耗时。为减少这种编译负担,可以在不同的 bin 目录分别编译和存储相同项目的独立部分。这些目录被添加到类路径。 将类添加到类路径有几种方法可选。但您只能使用 -classpath 命令行开关。例如,假设我想从另一个之前已经编译到目录 /Users/elharo/classes 的工程导入文件,那么我会向命令行添加 -classpath /Users/elharo/classes,如下所示:
现在假设需要添加两个目录,/Users/elharo/project1/classes 和 /Users/elharo/project2/classes。那么我将包含它们并使用冒号将它们分隔开,如下所示:
当然,您也可以使用自己喜欢的各种相对路径的格式。比如,如果 project1 和 project2 是当前工作目录的同级目录(即它们有相同的父目录), |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |