快速业务通道

管理Java类路径(Windows) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
应该到哪些目录查找源文件的层次结构。在清单 2 中,源路径是 src。所以我使用了 -sourcepath 选项,如下所示:

C:\project> javac -d bin -sourcepath src src\com\elharo\gui\MainFrame.java

现在再编译程序,就不会出现错误,并会产生如图 5 所示的输出。请注意 javac 也编译了文件 Fraction.java,Fraction.java 被当前编译的文件引用。

图 5. 多类输出

管理Java类路径(Windows) - 编程入门网

编译源路径中的多个目录

在源路径中可以有多个目录,使用分号分隔各目录,但通常没有必要这么做。例如,若我想包括本地的 src 目录和用来存放另一个项目的源代码的C:\Projects\XOM\src目录,我可以这样进行编译:

C:\project> javac -d bin -sourcepath src;C:\Projects\XOM\src src/com/elharo/gui/MainFrame.java

该命令并不编译在这两个层次结构中所找到的每个文件。它只编译由单个的 .java 文件直接或间接引用的文件,而此 .java 文件必须被编译。

更常见的情况是,为 .java 文件用一个单一的源目录,为类或放置了预编译的第三方库的 JAR 归档文件用多个目录。而这正是类路径的作用所在。

管理Java类路径(Windows)(5)

时间:2011-01-04 IBM Elliotte Harold

目录名中的空格

Java 类名和包名都不能包含空格。但有时一个包含 Java 包目录或源文件的目录可以包含空格。Documents and Settings 是其中一个最为明显的例子。如果需要在路经中包括一个这样的目录,就必须在相关的命令行参数两端加上双引号。例如,当前目录为根目录 C:,src 文件夹在 C:\Documents and Settings\Administrator\project,则需要像下面这样对它进行编译:

C:\> javac -d bin -sourcepath "C:\Documents and Settings\Administrator\project" -classpath C:\lib\classes "C:\Documents and Settings\Administrator\project\src\com\elharo\gui\MainFrame.java"

在很多情况下,大可不必这样做,您完全可以在编译和运行程序前先转换到 project 目录。

设置类路径

在大中型项目中,每次都要对每个文件进行重编译会非常耗时。为减少这种编译负担,可以在不同的 bin 目录分别编译和存储相同项目的独立部分。这些目录被添加到类路径。

将类添加到类路径有几种方法可选。但您只能使用 -classpath命令行开关。例如,假设我想从另一个之前已经编译到目录 C:\lib\classes 中的项目导入文件,那么我会向命令行添加 -classpath C:\lib\classes,如下所示:

C:\project> javac -d bin -sourcepath src -classpath C:\lib\classes src\com\elharo\gui\MainFrame.java

现在假设需要添加两个目录:C:\project1\classes 和 C:\project2\classes,可以将它们用分号分开,如下所示:

C:\project> javac -d bin -sourcepath src -classpath C:\project1\classes;C:\project2\classes src\com\elharo\gui\MainFrame.java

当然,您也可以使用自己喜欢的各种相对路径的格式。比如,如果 project1 和 project2 是当前工作目录的同级目录(即它们有相同的父目录),那么我会这样引用它们:

C:\project> javac -d bin -sourcepath src -classpath ..\project1\classes;..\project2\classes src\com\elharo\gui\MainFrame.java

到目前为止,我都一直假设程序完全独立并且没有使用任何单独的编译后的第三方库。如果需要使用第三方库,还必须将它们也添加到类路径。库通常是 JAR 文件的格式,比如 junit.jar 或 icu4j.jar。在本例中,需要向类路径添加的只是 JAR 文件本身,而不是包含 JAR 文件的目录(从实质上讲,JAR 文件可以充当包含编译后的 .class 文件的一种目录)。例如,如下命令会向类路径添加三项内容:目录 C:\classes、当前工作目录中的文件 icu4j.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号