沧州市网站建设,建设 网站工作汇报,杭州广众建设工程有限公司网站,效果图网址大全创建和应用Java包文件的两种方式(转) 《Java编程艺术》章节选登。作者#xff1a;高永强 清华大学出版社 #xff08;即将出版#xff09; 12.1 包——package 。。。 12.1.1 包命名规范 为了确保包文件名称的唯一性#xff0c;Java对应用软件开发者#xff0c… 创建和应用Java包文件的两种方式(转) 《Java编程艺术》章节选登。作者高永强 清华大学出版社 即将出版 12.1 包——package 。。。 12.1.1 包命名规范 为了确保包文件名称的唯一性Java对应用软件开发者尤其对软件开发公司在包的命名方面提出如下规范 包名全部用英文小写字母。 必须符合Java合法命名语法格式。 使用倒写的互联网地址作为包名。如果仍然不能表示包文件名的唯一性时加入地区性标识符。 避免使用Java API包名。例如java.lang、javax.swing等。 例1 . 应用Java包命名规范的例子。 互联网地址 包名 FreeSkyTech.com com.freeskytech Ohlone.edu/faculty/CS cs.faculty.edu.ohlone.usa 例2作为学习和培训为目的的编程实践建议使用具有清楚含义的文件目录作为包名。如本书例子中利用 C:\javabook\classes\ch12\ 作为储存包文件的目录而包名为ch12 12.1.2 创建包文件 包文件的创建和应用通常有如下两种方式 利用CLASSPATH。 利用Java JAR文件。 下面首先讨论利用CLASSPATH创建和使用包文件。以窗口操作系统为例创建包文件可按如下步骤 1. 创建用来储存生成的字节码文件的目录。Java规定从总目录开始至少有3个子目录。例如如下储存包文件的目录 C:\javabook\classes\ch12\ 其中ch12为包名。 2. 在要创建成包文件的程序开始按照以上目录加入package语句。即 package ch12; public class PackageTest { public void print() { System.out.println(\Here is message from Package Test ...\); } } 3. 设立CLASSPATH。其目的是告诉Java编译器以及JVM在哪里可以找到和装载源代码和字节代码文件。根据Java规定CLASSPATH必须转向比包文件储存目录高一级的目录。如在这个例子中CLASSPATH应当是C:\javabook\classes; 4. 创建储存源代码文件的目录。将源文件和生成的字节码文件分别储存在不同的目录中以易于管理。如下创建储存源代码文件的目录 C:\javabook\src\ch12\ 5. 将PackageTest.java或者所有要创建包文件的源代码复制到这个目录中。 6. 编译。在操作系统的总目录C:\中输入如下编译指令 C:\javac –d javabook\classes javabook\src\ch12\PackageTest.java 指令中–d告诉编译器将生成的字节码文件储存到其后指定的目录中。最后参数指出储存源代码文件的目录。如果这个目录中有多个创建的包文件可以将文件名修改为*.java。执行这个编译指令后编译器将把所有生成的.class文件储存到目录C:\javabook\classes\ch 12中。注意这个编译指令与以上各步骤的关系。如果指令不正确将产生编译错误或生成的字节文件不会被JVM装载。 也可使用两个子目录作为包名如 package ch12.share; public class PackageTest2 { ... } 储存包文件的文件目录为C:\javabook\classes\ch12\share\ 而CLASSPATH依然为 C:\javabook\classes\ 注意 在窗口操作系统中表示子目录的前斜划线\\或后斜划线/均为合法。 12.1.3 引入包文件 如同我们引入API包类一样创建了的包文件可以用import引入到程序中应用。例如上面的例子 import ch12.PackageTest1; import ch12.PackageTest2; 也可以利用 import ch12.*; 引入包ch12中所有的包类。注意PackageTestApp.java可以储存在任何目录中编译和运行。 12.1.4 JAR文件 创建和使用包文件的另外一种常用方式是利用Java的JAR文件。JDK的目录\jre\lib\ext允许以Java压缩文件JARJava Archive文件形式储存自定义包类。任何编程人员都可以在程序中引入这些压缩的包文件并加以应用。这种方式无需设立CLASSPATH。JAR文件可以包括多个包类用来提高引入、编译以及装载效率。在编译时Java编译器将首先自动对引入的包文件解压。 JDK中的指令jar可以用来创建JAR文件。假设有如下两个要创建为JAR文件的演示程序 package ch12; public class PackageTest1 { public void print() { System.out.println(\Here is Package Test 1 message...\); } } 以及 package ch12; public class PackageTest2 { public void print() { System.out.println(\Here is Package Test 2 message...\); } 可按照如下步骤创建和引入JAR文件 1. 创建储存包文件的目录。与利用CLASSPATH创建包文件目录的要求相同从总目录开始必须至少有3个子目录。如C:\javabook\classes\ch12\ 2. 将包文件源代码文件复制到以上目录中。 3. 分别编译每个程序。 4. 创建JAR文件。输入如下jar指令 C:\javabook\classes\jar cvf ch12.jar ch12\* 这个指令在当前目录中产生一个包括子目录所有文件的名为ch12.jar的压缩文件。三个jar指令的选项cvf的含义为c——创建JAR文件v——显示创建过程信息f——跟随的是jar文件名。“*”表示将包括源代码在内的程序都压缩在JAR文件中。也可以利用如下指令只包括字节文件 C:\javabook\classess\jar cvf ch12.jar ch12\*.class 注意一般JAR文件名使用小写字母。可以是任何Java合法标识符。 5. 将创建的jar文件拷贝到JDK的子目录\jre\lib\ext\中。 6. 实现引入。任何程序都可以引入这个JAR文件中的包类。例如 import ch12.*; //引入所有包类 public class PackageJarTestApp { public static void main(String[] args) { PackageTest1 myPackage new PackageTest1(); //利用引入的包类创建对象 myPackage.print(); //调用其方法 PackageTest2 yourPackage new PackageTest2(); yourPackage.print(); } } 如同引入API包类一样如果只需要import单独的包类在import中写明具体类名。如 import ch12.OtherClass; 12.1.5 IDE中的包 几乎所有流行的Java IDE都采用包和项目机制来管理应用程序的编写和开发。从这一章开始所有举例程序都利用Eclipse的包来储存和管理。 IDE中的包机制为创建和引入包类提供了方便。编程人员不必按照详细操作步骤创建包文件也不必为引入包类出错而担忧。编程人员只需考虑如何在IDE中设置包。 下面以Eclipse为例讨论如何在IDE中设置包。其他IDE的设置可参考相关IDE文件。 假设将上面小节讨论过的PackageTest1.java和PackageTest2.java作为项目Ch12的包文件。因为Eclipse自动生成包文件首先需要删除两个程序中的package指令。删除后的PackageTest1源代码如下所示 public class PackageTest1 { public void print() { System.out.println(\Here is Package Test 1 message...\); } } PackageTest2.java与此相同。 Eclipse提供了许多方法设置包。如下列举的是其典型步骤 1. 创建项目Project。如File→New→Project→Next输入项目名如Ch12。按下Finish。 2. 在项目名下如Ch12选择File→New→Package在Name:窗口条中输入包名如ch12按下Finish。 3. 在项目Ch12中创建一个用来储存包类的子目录例如classes。 4. 将以上两个程序拷贝至子目录classes中。完成包的设置。注意Eclipse自动在程序开始加入package classes; 如下为引入这两个包类的驱动程序 package ch12; import classes.*; //引入包classes的所有类即PackageTest1以及PackageTest2 public class PackageTestApp2 { public static void main(String[] args) { PackageTest1 myPackage new PackageTest1(); myPackage.print(); PackageTest2 yourPackage new PackageTest2(); yourPackage.print(); } } 如果把要引入包类的程序如上例的驱动程序和包类都储存在同一个目录或包中如ch12以上步骤可省略。import 语句则无必要。 自己总结的一些经验。。 1、java规定从总目录开始要有三层目录如C:\javapack\classes 在此下就可以定义自己的包还有一点如果包下面还有子包那么在其他类导入时子包也要写。。。忘了这个还以为哪里错了卡了好久。 2.上面文章总结了两种方法感觉第二种比较容易操作第一种其实也还好。。就是得注意环境变量的设置。注意一点就是java里classpath规定必须转向比包文件目录高一级的目录如上面的话就得 C:\javapack\classes 3.在eclipse发现在同一个工程里创建的包可以被其他类使用前提类必须public。 其实就是要验证protected能否在同一个包内使用无意撤出那么多。。。后面我们课程有学就是了。。 #java学习