管理源文件和類(lèi)文件
Java平臺(tái)的許多實(shí)現(xiàn)依賴于分層文件系統(tǒng)來(lái)管理源文件和類(lèi)文件,盡管Java語(yǔ)言規(guī)范不要求這樣做,策略如下。
將類(lèi)、接口、枚舉或注解類(lèi)型的源代碼放在文本文件中,該文件的名稱是類(lèi)型的簡(jiǎn)單名稱,其擴(kuò)展名為.java,例如:
//in the Rectangle.java file package graphics; public class Rectangle { ... }
然后,將源文件放在一個(gè)目錄中,該目錄的名稱反映了該類(lèi)型所屬的包的名稱:
.....graphicsRectangle.java
假定Microsoft Windows文件名分隔符反斜杠(對(duì)于UNIX,使用正斜杠),包成員的限定名稱和文件的路徑名是并行的。
類(lèi)名 — graphics.Rectangle
文件的路徑名 — graphicsRectangle.java
你應(yīng)該記得,按照慣例,公司使用其反向的互聯(lián)網(wǎng)域名作為其包名,Example公司的互聯(lián)網(wǎng)域名是example.com,com.example在它的所有包名之前,包名稱的每個(gè)組件對(duì)應(yīng)一個(gè)子目錄,因此,如果Example公司有一個(gè)包含Rectangle.java源文件的com.example.graphics包,它將包含在一系列子目錄中,如下所示:
....comexamplegraphicsRectangle.java
編譯源文件時(shí),編譯器會(huì)為其中定義的每種類(lèi)型創(chuàng)建不同的輸出文件,輸出文件的基本名稱是類(lèi)型的名稱,其擴(kuò)展名為.class,例如,如果源文件是這樣的:
//in the Rectangle.java file package com.example.graphics; public class Rectangle { . . . } class Helper{ . . . }
然后編譯的文件將位于:
comexamplegraphicsRectangle.class comexamplegraphicsHelper.class
與.java源文件一樣,已編譯的.class文件應(yīng)位于一系列反映包名稱的目錄中,但是,.class文件的路徑不必與.java源文件的路徑相同,你可以多帶帶排列源目錄和類(lèi)目錄,如下所示:
sourcescomexamplegraphicsRectangle.java classescomexamplegraphicsRectangle.class
通過(guò)這樣做,你可以將classes目錄提供給其他程序員而不會(huì)泄露你的源文件,你還需要以這種方式管理源文件和類(lèi)文件,以便編譯器和Java虛擬機(jī)(JVM)可以找到程序使用的所有類(lèi)型。
classes目錄的完整路徑
classes
是你的類(lèi)路徑,包名是:
com.example.graphics
那么編譯器和JVM查找.class文件位于:
classescomexamplegraphics.
類(lèi)路徑可能包含多個(gè)路徑,用分號(hào)(Windows)或冒號(hào)(UNIX)分隔,默認(rèn)情況下,編譯器和JVM搜索當(dāng)前目錄和包含Java平臺(tái)類(lèi)的JAR文件,以便這些目錄自動(dòng)位于類(lèi)路徑中。
設(shè)置CLASSPATH系統(tǒng)變量要顯示當(dāng)前的CLASSPATH變量,請(qǐng)?jiān)赪indows和UNIX(Bourne shell)中使用以下命令:
In Windows: C:> set CLASSPATH In UNIX: % echo $CLASSPATH
要?jiǎng)h除CLASSPATH變量的當(dāng)前內(nèi)容,請(qǐng)使用以下命令:
In Windows: C:> set CLASSPATH= In UNIX: % unset CLASSPATH; export CLASSPATH
要設(shè)置CLASSPATH變量,請(qǐng)使用以下命令(例如):
In Windows: C:> set CLASSPATH=C:usersgeorgejavaclasses In UNIX: % CLASSPATH=/home/george/java/classes; export CLASSPATH上一篇:使用包成員 下一篇:什么是異常?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72948.html
Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...
包 本課程解釋了如何將類(lèi)和接口捆綁到包中,如何使用包中的類(lèi),以及如何安排文件系統(tǒng)以便編譯器可以找到源文件。 創(chuàng)建和使用包 為了使類(lèi)型更易于查找和使用,避免命名沖突和控制訪問(wèn),程序員將相關(guān)類(lèi)型的組捆綁到包中。 定義:包是一組提供訪問(wèn)保護(hù)和名稱空間管理的相關(guān)類(lèi)型,請(qǐng)注意,類(lèi)型引用類(lèi)、接口、枚舉和注解類(lèi)型,枚舉和注解類(lèi)型分別是特殊的類(lèi)和接口,因此在本課中通常將類(lèi)型簡(jiǎn)稱為類(lèi)和接口。 作為Java平臺(tái)一部...
什么是異常? exception一詞是exceptional event這一短語(yǔ)的簡(jiǎn)寫(xiě)。 定義:異常是在程序執(zhí)行期間發(fā)生的事件,它會(huì)破壞程序指令的正常流程。 當(dāng)方法中發(fā)生錯(cuò)誤時(shí),該方法會(huì)創(chuàng)建一個(gè)對(duì)象并將其交給運(yùn)行時(shí)系統(tǒng),該對(duì)象稱為異常對(duì)象,包含有關(guān)錯(cuò)誤的信息,包括錯(cuò)誤發(fā)生時(shí)的類(lèi)型和程序狀態(tài),創(chuàng)建異常對(duì)象并將其交給運(yùn)行時(shí)系統(tǒng)稱為拋出異常。 在方法拋出異常后,運(yùn)行時(shí)系統(tǒng)會(huì)嘗試查找處理它的內(nèi)容,處理異常...
使用包成員 組成包的類(lèi)型稱為包成員。 要從其包外部使用公共包成員,你必須執(zhí)行以下操作之一: 通過(guò)其完全限定名稱引用該成員 導(dǎo)入包成員 導(dǎo)入成員的整個(gè)包 每種情況都適用于不同的情況,如以下各節(jié)所述。 通過(guò)其完全限定名稱引用包成員 到目前為止,本教程中的大多數(shù)示例都通過(guò)簡(jiǎn)單名稱引用類(lèi)型,例如Rectangle和StackOfInts,如果你編寫(xiě)的代碼與該成員位于同一個(gè)包中,或者已導(dǎo)入該成員,則可以...
抽象方法和類(lèi) 抽象類(lèi)是一個(gè)聲明為abstract的類(lèi) — 它可能包括也可能不包括抽象方法,抽象類(lèi)無(wú)法實(shí)例化,但可以進(jìn)行子類(lèi)化。 抽象方法是在沒(méi)有實(shí)現(xiàn)的情況下聲明的方法(沒(méi)有大括號(hào),后跟分號(hào)),如下所示: abstract void moveTo(double deltaX, double deltaY); 如果一個(gè)類(lèi)包含抽象方法,那么該類(lèi)本身必須被聲明為abstract,如: public abs...
閱讀 1438·2023-04-25 16:31
閱讀 2040·2021-11-24 10:33
閱讀 2745·2021-09-23 11:33
閱讀 2528·2021-09-23 11:31
閱讀 2900·2021-09-08 09:45
閱讀 2336·2021-09-06 15:02
閱讀 2647·2019-08-30 14:21
閱讀 2313·2019-08-30 12:56