商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Java编译在Debian上如何部署

Java编译在Debian上如何部署

  发布于2026-07-31 阅读(0)

扫一扫,手机访问

一、前置准备:更新系统与安装Ja va环境

在开始动手前,先把系统环境收拾利索。这步做好了,后面就不容易卡壳。Debian上部署Ja va应用,第一件事就是确保系统是最新的,然后装好Ja va运行环境(JRE或JDK)。现在推荐用OpenJDK,Debian默认就支持,开源稳定,省心。

Ja va编译在Debian上如何部署

# 更新系统软件包列表及已安装的包
sudo apt update && sudo apt upgrade -y

# 安装OpenJDK 11(可根据需求替换为17、21等版本,如`openjdk-17-jdk`)
sudo apt install openjdk-11-jdk -y

# 验证安装(输出Ja va版本信息则表示成功)
ja va -version

上面这段命令会装好JDK,里面自带编译器 ja vac。如果只是跑程序,不需要编译,那装个轻量的 openjdk-11-jre 就够了。系统更新加上Ja va环境安装,一套组合拳下来,环境就稳了。

二、编译Ja va应用(本地开发环境)

如果你需要在Debian上直接编译Ja va代码,先把源代码结构梳理好。比如项目里有个 src/com/example/YourMainClass.ja va,然后按下面几步走:

# 创建输出目录(用于存放编译后的.class文件)
mkdir -p out

# 编译Ja va源文件(指定源文件目录`src`,输出到`out`目录)
ja vac -d out src/com/example/YourMainClass.ja va

# 验证编译结果(`out`目录下应生成对应的.class文件)
ls out/com/example/

如果项目依赖了第三方库,别忘了用 -cp 参数指定类路径,像这样:ja vac -cp "libs/*":src -d out src/com/example/YourMainClass.ja va。别小看这一步,依赖管理不好,后面编译全是坑。

三、打包Ja va应用为可执行JAR

编译完的类文件,最好打包成可执行JAR,部署起来方便。关键是 MANIFEST.MF 文件里要指定主类:

# 创建MANIFEST.MF文件(指定主类,如`com.example.YourMainClass`)
echo "Manifest-Version: 1.0" > MANIFEST.MF
echo "Main-Class: com.example.YourMainClass" >> MANIFEST.MF

# 打包为JAR(`-C out .`表示切换到`out`目录后打包所有内容)
jar cfm your-app.jar MANIFEST.MF -C out .

# 验证JAR包(输出主类信息则表示打包成功)
jar tf your-app.jar

打包后,通过 ja va -jar your-app.jar 就能直接运行,省心不少。

四、部署JAR到Debian服务器

本地打包好,就得把JAR文件传到服务器上。用 scp 命令是最直接的方式:

# 将本地`your-app.jar`上传至服务器`/opt/ja va-apps`目录(需提前创建)
scp your-app.jar user@your-server-ip:/opt/ja va-apps/

上传完,登录服务器看一眼文件在不在:ls -l /opt/ja va-apps/your-app.jar服务器那边的目录结构提前规划好,别到时候手忙脚乱。

五、运行Ja va应用

服务器上直接跑JAR,用 ja va -jar 命令就行:

# 运行JAR(指定JAR路径)
ja va -jar /opt/ja va-apps/your-app.jar

# 若需后台运行(脱离终端),可使用`nohup`或`&`
nohup ja va -jar /opt/ja va-apps/your-app.jar > app.log 2>&1 &

这里解释一下:

  • nohup 防止进程因终端关闭而终止;
  • > app.log 把输出重定向到 app.log 文件;
  • 2>&1 把错误输出也合并到标准输出里。

这些参数组合起来,就能让应用在后台安安静静地跑,不会因为断开SSH就死掉。

六、设置开机自启动(可选)

如果希望应用在服务器重启后自动爬起来,可以用 systemd 服务来实现。操作不复杂:

# 创建服务文件(`your-app.service`)
sudo nano /etc/systemd/system/your-app.service

# 写入以下内容(根据实际情况修改`User`、`ExecStart`路径)
[Unit]
Description=Your Ja va Application
After=network.target

[Service]
User=www-data
# 建议使用非root用户(如www-data、appuser)
ExecStart=/usr/bin/ja va -jar /opt/ja va-apps/your-app.jar
SuccessExitStatus=143
# 处理JVM正常退出信号
Restart=on-abort
# 异常退出时自动重启
RestartSec=10
# 重启间隔10秒

[Install]
WantedBy=multi-user.target

# 保存并退出(Ctrl+O→回车→Ctrl+X)

# 启用服务(设置开机自启)
sudo systemctl enable your-app.service

# 启动服务
sudo systemctl start your-app.service

# 查看服务状态(确认运行正常)
sudo systemctl status your-app.service

这样一来,服务器重启后,应用自动启动,完全不用手动干预。

七、可选:管理多个Ja va版本

如果服务器上需要同时跑多个Ja va版本,比如11和17,那 update-alternatives 工具就是你的救星。用它切换默认版本很方便:

# 注册Ja va版本到alternatives系统(以OpenJDK 11和17为例)
sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 1100
sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-17-openjdk-amd64/bin/ja va 1700

# 切换默认Ja va版本(交互式选择)
sudo update-alternatives --config ja va

# 验证当前默认版本
ja va -version

这个工具能让你在不同版本间自由切换,避免版本冲突,特别适合多项目共存的场景。操作完别忘了验证一下,确认版本切对了。

本文转载于:https://www.yisu.com/ask/72711921.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注