Linux下怎么运行jar

发布时间:2022-02-14 10:02:10 作者:iii
来源:亿速云 阅读:143
# 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,以便获取完整工具链


二、基础运行方法

1. 简单运行

java -jar application.jar

2. 指定内存参数

# 分配最小1G,最大2G堆内存
java -Xms1g -Xmx2g -jar application.jar

3. 后台运行(nohup方式)

nohup java -jar application.jar > /var/log/app.log 2>&1 &

三、高级运行方案

1. 使用systemd管理服务

创建/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

2. 多JAR包运行

使用类路径指定:

java -cp "lib/*:main.jar" com.example.MainClass

四、常见问题解决

1. “no main manifest attribute”错误

原因: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>

2. 端口冲突

# 查看端口占用
sudo netstat -tulnp | grep 8080

# 终止占用进程
sudo kill -9 <PID>

五、性能优化建议

1. JVM参数调优

# 生产环境推荐配置示例
java -server \
     -Xms2g -Xmx2g \
     -XX:+UseG1GC \
     -XX:MaxGCPauseMillis=200 \
     -jar application.jar

2. 使用JIT优化

# 启用分层编译
-XX:+TieredCompilation

3. 内存分析工具

# 生成堆转储
jmap -dump:format=b,file=heap.hprof <pid>

# 使用jvisualvm分析
jvisualvm &

六、安全注意事项

  1. 不要以root运行

    sudo -u appuser java -jar application.jar
    
  2. 网络隔离

    # 使用firewalld限制访问
    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
  3. 定期更新

    # 检查Java安全更新
    sudo apt list --upgradable | grep openjdk
    

结语

掌握Linux下运行JAR包的多种方式后,建议根据实际场景选择合适方案。对于生产环境,推荐使用systemd进行服务化管理,配合JVM调优参数可获得最佳性能。

附:常用命令速查 - 查看JVM参数:jinfo <pid> - 监控GC情况:jstat -gc <pid> 1000 - 线程分析:jstack <pid> “`

(注:实际字符数约1500,可根据需要删减部分章节或示例)

推荐阅读:
  1. window运行.jar
  2. Linux下如何运行java

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux jar

上一篇:Python如何生成excel栏位宽度可自适应内容长度

下一篇:c语言中数据存储与原码、反码、补码的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》