在Debian系統上編寫和運行Java腳本前,需先安裝Java開發工具包(JDK)。推薦使用OpenJDK(開源且穩定),以下以OpenJDK 11為例:
sudo apt update && sudo apt install -y openjdk-11-jdk
安裝完成后,通過以下命令驗證安裝結果:
java -version # 查看Java運行時環境版本
javac -version # 查看Java編譯器版本
若輸出類似openjdk version "11.0.xx"的信息,則說明安裝成功。
使用文本編輯器(如vim、nano或gedit)創建Java源文件,例如HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Debian Java Script!");
}
}
保存文件后,需通過javac命令編譯為字節碼(.class文件),再通過java命令運行:
javac HelloWorld.java # 編譯生成HelloWorld.class
java HelloWorld # 運行程序,輸出結果
若項目包含多個Java文件,可編寫Shell腳本自動化編譯過程。以下腳本會編譯src目錄下所有.java文件,并將編譯結果輸出到build目錄:
#!/bin/bash
# 設置源碼目錄和編譯輸出目錄
SOURCE_DIR="src"
BUILD_DIR="build"
# 創建輸出目錄(若不存在)
mkdir -p "$BUILD_DIR"
# 編譯所有Java文件
javac -d "$BUILD_DIR" -sourcepath "$SOURCE_DIR" "$SOURCE_DIR"/**/*.java
# 檢查編譯結果
if [ $? -eq 0 ]; then
echo "Java compilation succeeded!"
else
echo "Java compilation failed. Check the error messages above."
exit 1
fi
賦予腳本執行權限后運行:
chmod +x compile_java.sh
./compile_java.sh
若需頻繁運行Java程序(如服務端應用),可編寫腳本實現停止舊進程→啟動新進程的自動化流程。以下以myapp.jar為例:
#!/bin/bash
# 定義JAR文件路徑
APP_PATH="/home/user/myapp/myapp.jar"
LOG_PATH="/home/user/myapp/logs/app.log"
JAVA_CMD="java -jar $APP_PATH"
# 停止正在運行的Java進程
PID=$(ps -ef | grep "$APP_PATH" | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
echo "Stopping Java application (PID: $PID)..."
kill $PID
sleep 2
if [ $? -eq 0 ]; then
echo "Java application stopped successfully."
else
echo "Failed to stop Java application. Force killing..."
kill -9 $PID
fi
else
echo "No running Java application found."
fi
# 啟動Java應用(后臺運行,日志輸出到文件)
echo "Starting Java application..."
nohup $JAVA_CMD > "$LOG_PATH" 2>&1 &
echo "Java application started. Check logs at $LOG_PATH."
賦予執行權限后,可通過./restart.sh命令重啟應用。
對于復雜項目,建議使用構建工具(如Maven、Gradle)或CI/CD工具(如Jenkins)實現更高效的自動化:
pom.xml文件(定義依賴、插件等配置);mvn clean compile package命令,自動完成清理舊文件→編譯代碼→打包JAR的全流程。sudo apt install jenkins;mvn package);javac命令,需手動配置JAVA_HOME(指向JDK安裝目錄,如/usr/lib/jvm/java-11-openjdk-amd64)并更新PATH;chmod +x script.sh),否則無法運行;nohup java -jar app.jar > app.log 2>&1 &),便于排查問題。