您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux下怎么运行jar
## 前言
Java应用常以JAR(Java Archive)包形式分发,在Linux系统中运行JAR文件是开发者必备的基础技能。本文将详细介绍多种运行方法、常见问题解决以及性能优化技巧。
---
## 一、环境准备
### 1. 安装Java运行时
运行JAR前需确保系统已安装Java环境:
```bash
# 检查Java是否安装
java -version
# 若未安装,Ubuntu/Debian系统安装OpenJDK:
sudo apt update
sudo apt install openjdk-17-jdk
# CentOS/RHEL系统:
sudo yum install java-17-openjdk-devel
推荐使用JDK而非JRE,以便获取完整工具链
java -jar application.jar
# 分配最小1G,最大2G堆内存
java -Xms1g -Xmx2g -jar application.jar
nohup java -jar application.jar > /var/log/app.log 2>&1 &
创建/etc/systemd/system/myapp.service
:
[Unit]
Description=My Java Application
After=syslog.target network.target
[Service]
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/myapp/application.jar
SuccessExitStatus=143
Restart=always
[Install]
WantedBy=multi-user.target
操作命令:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
使用类路径指定:
java -cp "lib/*:main.jar" com.example.MainClass
原因:MANIFEST.MF未指定主类
解决方案:
# 方式1:运行时显式指定主类
java -cp app.jar com.example.MainClass
# 方式2:重新打包时指定主类(Maven配置示例)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
# 查看端口占用
sudo netstat -tulnp | grep 8080
# 终止占用进程
sudo kill -9 <PID>
# 生产环境推荐配置示例
java -server \
-Xms2g -Xmx2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-jar application.jar
# 启用分层编译
-XX:+TieredCompilation
# 生成堆转储
jmap -dump:format=b,file=heap.hprof <pid>
# 使用jvisualvm分析
jvisualvm &
不要以root运行:
sudo -u appuser java -jar application.jar
网络隔离:
# 使用firewalld限制访问
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
定期更新:
# 检查Java安全更新
sudo apt list --upgradable | grep openjdk
掌握Linux下运行JAR包的多种方式后,建议根据实际场景选择合适方案。对于生产环境,推荐使用systemd进行服务化管理,配合JVM调优参数可获得最佳性能。
附:常用命令速查 - 查看JVM参数:
jinfo <pid>
- 监控GC情况:jstat -gc <pid> 1000
- 线程分析:jstack <pid>
“`
(注:实际字符数约1500,可根据需要删减部分章节或示例)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。