温馨提示×

centos如何定时跑java

小樊
47
2026-09-14 21:17:44
栏目: 编程语言

在 CentOS 上定时运行 Java 程序,常见做法有两种:cron(最常用)systemd timer。下面以 cron 为主讲,最实用。


一、准备 Java 运行环境

先确认 Java 已安装:

java -version

如果没有:

yum install java-1.8.0-openjdk -y

二、写一个启动脚本(推荐)

假设你的 Java 程序是:

/opt/app/myapp.jar

创建脚本:

vi /opt/app/run.sh

内容示例:

#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

cd /opt/app
java -jar myapp.jar >> /opt/app/log.out 2>&1

赋权:

chmod +x /opt/app/run.sh

三、使用 crontab 定时执行

1️⃣ 编辑定时任务

crontab -e

2️⃣ 添加定时规则

示例(每天凌晨 2 点执行):

0 2 * * * /opt/app/run.sh

常见示例:

# 每 5 分钟
*/5 * * * * /opt/app/run.sh

# 每天 23:30
30 23 * * * /opt/app/run.sh

# 每周一 1 点
0 1 * * 1 /opt/app/run.sh

四、注意事项(非常重要)

✅ 1. cron 环境很干净

cron 不会加载你的环境变量,所以:

  • 一定要在脚本里写 JAVA_HOME
  • 用绝对路径

✅ 2. 日志一定要重定向

否则你看不到报错:

>> /opt/app/log.out 2>&1

✅ 3. 查看 cron 日志

tail -f /var/log/cron

五、进阶方案(systemd timer,适合服务化)

如果你是 CentOS 7+,也可以用 systemd:

  • myapp.service
  • myapp.timer

适合长期运行 / 精确控制,比 cron 更现代。


六、常见错误

java: command not found → 没设 JAVA_HOME
❌ 手动能跑,cron 不行 → 环境变量问题
❌ 没日志 → 没重定向输出


如果你愿意,可以告诉我:

  • Java 是 jar 包还是 class
  • 多久跑一次
  • CentOS 版本(6 / 7 / 8)

我可以直接帮你写完整配置。

0