
linux如何启动jar项目
我想在 Linux 服务器上启动一个 Java 项目,但不知道这个 JAR 能不能直接运行,应该先看哪些信息?
先确认 JAR 是否可执行
需要先判断这个 JAR 是否是可执行包。可执行 JAR 通常在 MANIFEST.MF 中配置了 Main-Class,直接使用 java -jar 就能启动;如果只是普通依赖包或未指定入口类,就不能直接运行。可以通过查看打包方式、Spring Boot 版本、启动类配置来确认是否具备直接启动条件。
在服务器上部署 Java 服务时,我看到有人直接用 java -jar,也有人加上 nohup,这两种方式适合什么场景?
根据是否需要后台常驻来选择
java -jar 适合在前台直接启动应用,终端关闭后进程通常也会受到影响;nohup java -jar 则更适合在后台长期运行,即使退出当前 SSH 会话,进程也能继续执行。若项目需要持续提供服务,常见做法是结合 nohup、重定向日志和后台运行符号来启动。
JAR 已经启动成功,但外部还是访问不到服务,这种情况在 Linux 上通常要排查什么?
优先排查端口、权限和日志
可以先检查应用监听的端口是否正确、端口是否被防火墙或安全组拦截、进程是否真的在运行,以及启动日志里是否有异常。还要确认 JAR 所用的配置文件、环境变量和工作目录是否正确,因为这些因素都可能导致服务虽然启动但无法对外提供访问。
我的 Java 服务部署在 Linux 服务器上,希望机器重启后它能自动起来,不想每次手工启动,有什么常见做法?
可以使用 systemd 管理服务
常见方案是把 JAR 封装成 systemd 服务,由 systemd 负责开机拉起、重启守护和日志管理。这样比手工写启动命令更稳定,也方便统一管理。只需要编写 service 配置,指定 Java 路径、JAR 路径、工作目录和启动参数,再设置开机自启即可。