上一篇
2025年8月最新消息:根据最新的Java开发者调查报告显示,Linux系统已成为Java应用部署的首选平台,占比高达72%,随着Java 21 LTS版本的广泛采用,其增强的容器支持和性能优化使得在Linux上运行JAR包更加高效稳定,下面我们就来详细介绍在Linux系统中部署和运行Java JAR包的全流程。
在开始之前,你需要确保系统已经安装了合适版本的Java环境:
# 检查Java是否安装 java -version # 如果没有安装,在Ubuntu/Debian上安装OpenJDK sudo apt update sudo apt install openjdk-21-jdk # 在CentOS/RHEL上安装 sudo yum install java-21-openjdk-devel
注意:根据你的应用需求选择合适的Java版本,大多数现代应用推荐使用Java 17或21这些LTS版本。
最简单的运行方式是使用java -jar
命令:
java -jar your-application.jar
如果你的应用需要指定内存大小:
# 设置初始堆内存为512M,最大堆内存为2G java -Xms512m -Xmx2g -jar your-application.jar
nohup java -jar your-application.jar > app.log 2>&1 &
nohup
:防止进程在终端退出时被终止> app.log
:将标准输出重定向到app.log文件2>&1
:将错误输出也重定向到标准输出&
:在后台运行创建服务文件:
sudo vi /etc/systemd/system/myapp.service
如下:
[Unit] Description=My Java Application After=syslog.target network.target [Service] User=appuser WorkingDirectory=/path/to/your/app ExecStart=/usr/bin/java -Xms512m -Xmx2g -jar /path/to/your-application.jar SuccessExitStatus=143 Restart=always RestartSec=30 [Install] WantedBy=multi-user.target
然后启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable myapp sudo systemctl start myapp
问题:运行JAR包时出现"no main manifest attribute, in your-application.jar"错误。
原因:JAR文件缺少Main-Class清单属性。
解决方案:
java -cp your-application.jar com.yourpackage.MainClass
问题:应用启动失败,提示端口已被占用。
解决方案:
# 查找占用端口的进程 sudo netstat -tulnp | grep :8080 # 或者使用更现代的ss命令 sudo ss -tulnp | grep :8080 # 杀死占用进程(谨慎操作) sudo kill -9 <PID>
问题:应用运行一段时间后崩溃,出现OutOfMemoryError。
解决方案:
java -Xms1g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps -jar your-application.jar
问题:应用无法读取或写入文件。
解决方案:
# 更改文件所有者 sudo chown -R appuser:appgroup /path/to/your/app # 更改文件权限 sudo chmod -R 755 /path/to/your/app
# 安装jenv curl -L -s get.jenv.io | bash # 添加Java版本 jenv add /usr/lib/jvm/java-21-openjdk # 设置全局Java版本 jenv global 21
java -server \ -Xms2g -Xmx2g \ -XX:+UseG1GC \ -XX:MaxGCPauseMillis=200 \ -XX:ParallelGCThreads=4 \ -XX:ConcGCThreads=2 \ -XX:InitiatingHeapOccupancyPercent=70 \ -jar your-application.jar
# 添加JMX远程监控参数 java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=9010 \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -jar your-application.jar
通过以上步骤和技巧,你应该能够在Linux系统上顺利部署和运行Java JAR包应用,根据应用的具体需求,你可能还需要配置数据库连接、外部服务集成等额外设置。
本文由 东门紫薇 于2025-08-02发表在【云服务器提供商】,文中图片由(东门紫薇)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/515393.html
发表评论