在Linux系统中启动Java程序是开发运维中的常见操作,涉及环境配置、启动脚本优化及进程管理等多个环节,本文将围绕核心步骤展开说明,帮助读者掌握规范化的Java程序部署方法。

环境准备:JDK安装与配置
启动Java程序的前提是确保Java开发工具包(JDK)已正确安装,首先通过java -version命令检查系统是否已安装JDK,若未安装,可使用包管理器进行安装,如在Ubuntu系统中执行sudo apt install openjdk-11-jdk,CentOS系统中则使用sudo yum install java-11-openjdk-devel,安装完成后,需配置JAVA_HOME环境变量,编辑/etc/profile或用户家目录下的.bashrc文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
保存后执行source ~/.bashrc使配置生效,再次通过java -version验证输出版本信息,确保环境变量配置正确。
启动方式:命令行与脚本执行
对于简单的Java程序,可直接通过命令行启动,假设程序入口类为com.example.Main,打包生成的JAR文件为app.jar,执行命令:
java -jar app.jar
若需传递JVM参数(如堆内存设置),可添加参数前缀:
java -Xms512m -Xmx1024m -jar app.jar
为便于管理生产环境程序,建议编写启动脚本,创建start.sh如下:

#!/bin/bash APP_NAME="app.jar" JAVA_OPTS="-Xms512m -Xmx1024m -Dserver.port=8080" nohup java $JAVA_OPTS -jar $APP_NAME > app.log 2>&1 & echo "程序已启动,PID: $!"
其中nohup命令确保程序在终端关闭后仍可运行,2>&1将错误输出重定向到标准输出,app.log为日志文件,赋予脚本执行权限后,通过./start.sh即可启动程序。
进程管理:监控与维护
程序启动后,需通过进程管理工具确保其稳定运行,使用ps aux | grep java命令查看Java进程状态,若需终止进程,可通过kill -9 <PID>强制结束,对于长期运行的服务,推荐使用systemd进行管理,创建服务单元文件/etc/systemd/system/app.service:
[Unit] Description=Java Application Service After=network.target [Service] User=javauser Group=javauser ExecStart=/usr/bin/java -jar /opt/app/app.jar ExecStop=/bin/kill -15 $MAINPID SuccessExitStatus=143 [Install] WantedBy=multi-user.target
通过systemctl start app启动服务,systemctl enable app设置开机自启,systemctl status app查看服务状态,日志可通过journalctl -u app -f实时监控。
性能优化与日志处理
为提升程序性能,需根据服务器资源配置JVM参数,对于4GB内存的服务器,可设置堆内存为2GB,并开启GC日志:
java -Xms2g -Xmx2g -Xlog:gc*:file=gc.log:time,level,tags -jar app.jar
日志文件应定期归档,可通过logrotate工具实现,配置/etc/logrotate.d/app:

/opt/app/app.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
此配置将每日压缩日志并保留7天,copytruncate确保在日志轮转时程序仍可写入新内容。
通过以上步骤,可实现Linux环境下Java程序的高效启动与稳定运行,实际操作中需结合业务需求调整参数,并建立完善的监控机制,确保程序长期可靠服务。


















