管理源文件和类文件
Java平台的许多实现依赖于分层文件系统来管理源文件和类文件,尽管Java语言规范不要求这样做,策略如下。
将类、接口、枚举或注解类型的源代码放在文本文件中,该文件的名称是类型的简单名称,其扩展名为.java,例如:
//in the Rectangle.java file package graphics; public class Rectangle { ... }
然后,将源文件放在一个目录中,该目录的名称反映了该类型所属的包的名称:
.....graphicsRectangle.java
假定Microsoft Windows文件名分隔符反斜杠(对于UNIX,使用正斜杠),包成员的限定名称和文件的路径名是并行的。
类名 — graphics.Rectangle
文件的路径名 — graphicsRectangle.java
你应该记得,按照惯例,公司使用其反向的互联网域名作为其包名,Example公司的互联网域名是example.com,com.example在它的所有包名之前,包名称的每个组件对应一个子目录,因此,如果Example公司有一个包含Rectangle.java源文件的com.example.graphics包,它将包含在一系列子目录中,如下所示:
....comexamplegraphicsRectangle.java
编译源文件时,编译器会为其中定义的每种类型创建不同的输出文件,输出文件的基本名称是类型的名称,其扩展名为.class,例如,如果源文件是这样的:
//in the Rectangle.java file package com.example.graphics; public class Rectangle { . . . } class Helper{ . . . }
然后编译的文件将位于:
comexamplegraphicsRectangle.class comexamplegraphicsHelper.class
与.java源文件一样,已编译的.class文件应位于一系列反映包名称的目录中,但是,.class文件的路径不必与.java源文件的路径相同,你可以多带带排列源目录和类目录,如下所示:
sourcescomexamplegraphicsRectangle.java classescomexamplegraphicsRectangle.class
通过这样做,你可以将classes目录提供给其他程序员而不会泄露你的源文件,你还需要以这种方式管理源文件和类文件,以便编译器和Java虚拟机(JVM)可以找到程序使用的所有类型。
classes目录的完整路径
classes
是你的类路径,包名是:
com.example.graphics
那么编译器和JVM查找.class文件位于:
classescomexamplegraphics.
类路径可能包含多个路径,用分号(Windows)或冒号(UNIX)分隔,默认情况下,编译器和JVM搜索当前目录和包含Java平台类的JAR文件,以便这些目录自动位于类路径中。
设置CLASSPATH系统变量要显示当前的CLASSPATH变量,请在Windows和UNIX(Bourne shell)中使用以下命令:
In Windows: C:> set CLASSPATH In UNIX: % echo $CLASSPATH
要删除CLASSPATH变量的当前内容,请使用以下命令:
In Windows: C:> set CLASSPATH= In UNIX: % unset CLASSPATH; export CLASSPATH
要设置CLASSPATH变量,请使用以下命令(例如):
In Windows: C:> set CLASSPATH=C:usersgeorgejavaclasses In UNIX: % CLASSPATH=/home/george/java/classes; export CLASSPATH上一篇:使用包成员 下一篇:什么是异常?
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72948.html
Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...
包 本课程解释了如何将类和接口捆绑到包中,如何使用包中的类,以及如何安排文件系统以便编译器可以找到源文件。 创建和使用包 为了使类型更易于查找和使用,避免命名冲突和控制访问,程序员将相关类型的组捆绑到包中。 定义:包是一组提供访问保护和名称空间管理的相关类型,请注意,类型引用类、接口、枚举和注解类型,枚举和注解类型分别是特殊的类和接口,因此在本课中通常将类型简称为类和接口。 作为Java平台一部...
什么是异常? exception一词是exceptional event这一短语的简写。 定义:异常是在程序执行期间发生的事件,它会破坏程序指令的正常流程。 当方法中发生错误时,该方法会创建一个对象并将其交给运行时系统,该对象称为异常对象,包含有关错误的信息,包括错误发生时的类型和程序状态,创建异常对象并将其交给运行时系统称为抛出异常。 在方法抛出异常后,运行时系统会尝试查找处理它的内容,处理异常...
使用包成员 组成包的类型称为包成员。 要从其包外部使用公共包成员,你必须执行以下操作之一: 通过其完全限定名称引用该成员 导入包成员 导入成员的整个包 每种情况都适用于不同的情况,如以下各节所述。 通过其完全限定名称引用包成员 到目前为止,本教程中的大多数示例都通过简单名称引用类型,例如Rectangle和StackOfInts,如果你编写的代码与该成员位于同一个包中,或者已导入该成员,则可以...
抽象方法和类 抽象类是一个声明为abstract的类 — 它可能包括也可能不包括抽象方法,抽象类无法实例化,但可以进行子类化。 抽象方法是在没有实现的情况下声明的方法(没有大括号,后跟分号),如下所示: abstract void moveTo(double deltaX, double deltaY); 如果一个类包含抽象方法,那么该类本身必须被声明为abstract,如: public abs...
阅读 1437·2023-04-25 16:31
阅读 2039·2021-11-24 10:33
阅读 2743·2021-09-23 11:33
阅读 2528·2021-09-23 11:31
阅读 2900·2021-09-08 09:45
阅读 2335·2021-09-06 15:02
阅读 2646·2019-08-30 14:21
阅读 2312·2019-08-30 12:56