在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 &
),便于排查问题。