Linux下定时执行JAVA程序

打成JAR包

首先要把写好的JAVA程序封装成JAR包,注意选好主类,然后把该包和及其依赖的第三方jar包都上传到服务器上。
我的程序是每天凌晨定时更新一下数据库中的某价格,jar包在服务器上的路径如下:/usr/java/updatePrice/ModifyPrice.jar。

编写shell脚本

我的本本是windows,所以写shell脚本有些费劲。首先随便新建个文件,然后把后缀名改成.sh。脚本内容如下:

#!/bin/bash  

#导入环境变量
export LANG="en_US.UTF-8"  
export JAVA_HOME=/usr/java/jdk1.7.0_80 
export PATH=$JAVA_HOME/bin:$PATH  
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  echo Hello,world!
UPDATE_HOME=/usr/java/updatePrice
CONFIG=$UPDATE_HOME/configer.properties  
echo Hello,world!
echo "【`date +%Y-%m-%d_%H:%M:%S`】begin updatePrice"  
sed -i "/OVER/ s/=.*/=0/g" $CONFIG  
cd $UPDATE_HOME && echo "进入目录:$UPDATE_HOME"  
java -jar $UPDATE_HOME/TrvaelModifyPrice.jar && echo "excute TrvaelModifyPrice.jar completed!" && sed -i "/OVER/ s/=.*/=1/g" $CONFIG || echo "excute TrvaelModifyPrice.jar failed!"  
echo "【`date +%Y-%m-%d_%H:%M:%S`】completed."  

应该可以很容易看懂个大概的,echo是输出语句,java -jar $UPDATE_HOME/TrvaelModifyPrice.jar这句就是执行jar包的语句。
注意导入环境变量,确保路径正确。
这里注意,跨平台上传要转换文件格式,只改后缀名是没用的,我用的是UltraEdit把文件从DOS转成了UNIX,还有很多方法(请百度),这样上传到Linux的服务器才可以运行。

设置定时器

把编写好的脚本文件上传到服务器之后,在控制台输入 crontab -e 调出定时器的vi界面添加定时启动命令。
36 19 * * * sh /usr/java/updatePrice/modifyPrice.sh >> /usr/java/updatePrice/travelmodifyprice.log
前五个参数,从右向左依次是年、月、日、时、分,上面五个参数的意思是每年每月每天的19点36分执行后面的命令(*号代表每····)。sh是执行sh文件的命令,后面就是文件路径了,>>之后接的是日志路径。
这样程序就会按照自己的意愿执行了。

Linux环境下,定期重启Java应用通常通过cron作业(cron job)来实现,这是一个定时任务管理系统。以下是设置cron任务的基本步骤: 1. **打开cron表编辑器**:首先,你需要通过`crontab -e`命令打开cron配置文件,这将启动一个文本编辑器(默认是vi或vim)。 2. **添加一个新的定时任务**:在打开的编辑器,你会看到一系列以`*`表示的时间字段,按照时间顺序排列:分钟、小时、日期、月份和星期。每个字段都可以设定范围。例如,要每小时重启一次应用,你可以添加类似下面的行: ``` * * * * * /usr/bin/java -jar /path/to/your/app.jar & > /dev/null 2>&1 ``` 这一行的意思是,在每一分钟的开始(*)执行指定的命令。`/usr/bin/java`指定了Java解释器的位置,`-jar`用于执行JAR包的应用,`&> /dev/null 2>&1`确保日志信息会被忽略并重定向到/dev/null。 3. **保存并退出编辑器**:完成后,记得保存并关闭编辑器。 4. **测试和查看计划的任务**:使用`crontab -l`命令查看当前的cron任务列表,确认已经添加的重启命令是否正确。 5. **启用cron服务**:如果你之前禁用了cron服务,现在需要启用它,可以通过`sudo service cron start`来启动。 6. **验证任务**:检查应用程序的日志,或者简单地观察其状态,确认定时任务是否按预期工作。 注意:你需要确保你的Java应用能够在命令行下启动,并且`cron`用户有足够的权限访问应用程序和相关资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值