在 Ubuntu 上,使用 Java 編譯源代碼后,可以使用 jar
命令將編譯后的 .class
文件打包成 .jar
文件。以下是詳細步驟:
首先,確保你已經安裝了 Java Development Kit (JDK)。你可以使用以下命令檢查是否已安裝:
java -version
javac -version
如果尚未安裝,可以使用以下命令安裝 OpenJDK:
sudo apt update
sudo apt install openjdk-17-jdk
假設你的 Java 源代碼位于 src
目錄下,并且你希望將編譯后的類文件輸出到 bin
目錄:
mkdir -p bin
javac -d bin src/*.java
這會將所有 .class
文件編譯并放置在 bin
目錄中。
如果你希望生成的 .jar
文件可以指定主類(即包含 main
方法的類),需要創建一個清單文件(MANIFEST.MF
)。例如,假設你的主類是 com.example.Main
,可以按照以下步驟操作:
創建一個文本文件 manifest.txt
:
nano manifest.txt
在文件中添加以下內容,并替換 com.example.Main
為你的實際主類:
Main-Class: com.example.Main
保存并退出編輯器(在 nano
中按 Ctrl + O
保存,Ctrl + X
退出)。
使用 jar
命令將編譯后的類文件和清單文件打包成 .jar
文件。
如果你不需要指定主類,可以直接打包:
jar cf myapp.jar -C bin .
這會將 bin
目錄下的所有內容打包到 myapp.jar
中。
如果需要指定主類,可以使用以下命令:
jar cfm myapp.jar manifest.txt -C bin .
c
:創建新的歸檔文件。f
:指定歸檔文件名。m
:包含指定的清單文件。-C bin .
:切換到 bin
目錄,并將當前目錄(即 bin
)的內容添加到歸檔中。打包完成后,可以使用以下命令運行 .jar
文件:
java -jar myapp.jar
假設你的項目結構如下:
project/
├── src/
│ └── com/example/Main.java
└── bin/
步驟:
編譯:
mkdir -p bin
javac -d bin src/com/example/Main.java
創建清單文件 manifest.txt
:
Main-Class: com.example.Main
打包:
jar cfm myapp.jar manifest.txt -C bin .
運行:
java -jar myapp.jar
依賴管理:如果你的項目依賴于外部庫,打包成可執行的 JAR(即包含所有依賴的“胖 JAR”)會更加方便??梢允褂脴嫿üぞ呷?Maven 或 Gradle 來自動化這一過程。
使用構建工具:對于復雜的項目,建議使用 Maven 或 Gradle 來管理依賴、編譯和打包過程。這些工具提供了更強大的功能和更好的可維護性。
如果你選擇使用 Maven,以下是基本步驟:
安裝 Maven:
sudo apt install maven
創建 Maven 項目結構:
project/
├── pom.xml
└── src/
└── main/
└── java/
└── com/example/Main.java
編寫 pom.xml
:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myapp</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
編譯并打包:
cd project
mvn clean package
打包完成后,生成的 JAR 文件位于 target/
目錄下。
使用 Maven 或 Gradle 可以大大簡化項目的構建和管理過程,特別是當項目規模增大或依賴增多時。