package com.company.project.module; // 必須在文件首行,全小寫
com/company/project/module/com.alibaba.dubbo,保證全局唯一| 修飾符 | 同類 | 同包 | 子類(異包) | 異包無關類 |
|---|---|---|---|---|
| public | ✓ | ✓ | ✓ | ✓ |
| protected | ✓ | ✓ | ✓ | ✗ |
| default(無) | ✓ | ✓ | ✗ | ✗ |
| private | ✓ | ✗ | ✗ | ✗ |
核心結論:包間訪問僅能用 public(類/接口/成員)和 protected(僅子類繼承)。
# 編譯:-d 指定輸出根目錄 javac -d . Demo.java # 當前目錄生成包結構 javac -d /out Demo.java # 指定目錄,分離源碼與字節碼 # 運行:全限定類名 java com.company.Demo # 設置 classpath 運行 java -cp /out com.company.Demo
import pkg.ClassName; 導入具體類import pkg.*; 導入包下所有類(不含子包)一個包可包含多個類,僅 1 個 public 類(文件名同類名),其他默認 package-private,實現包級封裝。
java -jar app.jar 直接運行| 參數 | 含義 |
|---|---|
-c | 創建新歸檔 |
-t | 列出目錄 |
-x | 解壓文件 |
-u | 更新歸檔 |
-v | 顯示詳細過程 |
-f | 指定歸檔文件名 |
-m | 包含清單文件 |
-e | 指定主類(可執行 JAR) |
-0 | 僅存儲,不壓縮 |
-C dir | 切換目錄後包含文件 |
# 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
Manifest-Version: 1.0 Main-Class: com.Main Class-Path: lib/dependency1.jar lib/dependency2.jar
Main-Class:入口類Class-Path:相對路徑依賴,空格分隔javac -cp lib/*.jar Demo.javajava -cp .:lib/*.jar Demo (Linux/Mac 用 :, Windows 用 ;)