首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 包與 JAR 包完整指南:定義、訪問控制、編譯運行與壓縮打包實戰

     編輯:Java 綜合教學

Java 包與 JAR 包完整指南:定義、訪問控制、編譯運行與壓縮打包實戰

一、包:代碼組織與訪問控制的基本單元

1. 定義與聲明

package com.company.project.module; // 必須在文件首行,全小寫
  • 對應目錄結構:com/company/project/module/
  • 命名規範:域名反轉 + 功能模塊,如 com.alibaba.dubbo,保證全局唯一

2. 跨包訪問規則

修飾符同類同包子類(異包)異包無關類
public✓✓✓✓
protected✓✓✓✗
default(無)✓✓✗✗
private✓✗✗✗

核心結論:包間訪問僅能用 public(類/接口/成員)和 protected(僅子類繼承)。

3. 編譯與運行實戰

# 編譯:-d 指定輸出根目錄
javac -d . Demo.java        # 當前目錄生成包結構
javac -d /out Demo.java     # 指定目錄,分離源碼與字節碼

# 運行:全限定類名
java com.company.Demo

# 設置 classpath 運行
java -cp /out com.company.Demo

4. import 關鍵字簡化代碼

  • import pkg.ClassName; 導入具體類
  • import pkg.*; 導入包下所有類(不含子包)
  • 同名類衝突時必須用全限定名
  • 建議顯式導入,避免 * 降低可讀性、增加編譯時間

5. 封裝性體現

一個包可包含多個類,僅 1 個 public 類(文件名同類名),其他默認 package-private,實現包級封裝。

二、JAR 包:Java 歸檔與分發標準

1. 作用

  • 壓縮打包 .class 文件、資源文件、清單
  • 項目依賴分發(Maven Central、私服)
  • 可執行 JAR:java -jar app.jar 直接運行

2. jar 命令核心參數

參數含義
-c創建新歸檔
-t列出目錄
-x解壓文件
-u更新歸檔
-v顯示詳細過程
-f指定歸檔文件名
-m包含清單文件
-e指定主類(可執行 JAR)
-0僅存儲,不壓縮
-C dir切換目錄後包含文件

3. 實戰操作

# 1. 創建:打包 com 目錄下所有內容
jar -cvf mylib.jar com

# 2. 查看
jar -tvf mylib.jar

# 3. 解壓
jar -xvf mylib.jar

# 4. 創建可執行 JAR(需 Manifest 指定 Main-Class)
jar -cvfe app.jar com.Main com

# 5. 運行
java -jar app.jar

4. Manifest 清單文件

Manifest-Version: 1.0
Main-Class: com.Main
Class-Path: lib/dependency1.jar lib/dependency2.jar
  • Main-Class:入口類
  • Class-Path:相對路徑依賴,空格分隔
  • 生產環境建議用 Maven Shade/Assembly Plugin 自動生成

5. 使用第三方 JAR

  1. 下載 JAR(或 Maven 依賴管理)
  2. 編譯:javac -cp lib/*.jar Demo.java
  3. 運行:java -cp .:lib/*.jar Demo (Linux/Mac 用 :, Windows 用 ;)
  4. IDE 中加入 Module Dependencies / Build Path

三、最佳實踐總結

  1. 包名:域名反轉 + 模塊,全小寫,語義清晰
  2. 訪問控制:優先最小權限,包間僅 public/protected
  3. 編譯輸出:-d 分離源碼目標目錄
  4. JAR 製作:Maven 統一管理,手動 jar 僅用於調試
  5. 依賴傳遞:可執行 JAR 含 Class-Path,或 Spring Boot Fat JAR
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved