关闭

Linux下定时执行JAVA程序

标签: shelllinuxjava
713人阅读 评论(0) 收藏 举报
分类:

打成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文件的命令,后面就是文件路径了,>>之后接的是日志路径。
这样程序就会按照自己的意愿执行了。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java程序定时执行shell脚本

第一次写博客,写的不好还请见谅。 之前在Linux环境中想定期执行某个脚本,第一反应就是将这个task加入到crontab里(crontab的知识点这里就不具体介绍了),当然,这种做法一般情况下是可...
  • u011551388
  • u011551388
  • 2017-02-16 10:38
  • 943

【Linux】shell调用Java程序main方法通过crontab定时执行

最近一个项目需要写一个batch定时读取文件往数据库里插入记录,第一次写,遇到好多问题,记录一下。 先从shell如何调用java说起。 建立如下目录结构 batch               ...
  • coolcooldool
  • coolcooldool
  • 2016-06-28 13:09
  • 2836

Linux crontab定时器设置(定期执行java程序)

环境:      RedHat Linux      JDK5.0 功能说明:      每天早上2点钟执行一次java程序,读取Oracle数据库的数据进行备...
  • zhoujj303030
  • zhoujj303030
  • 2014-07-25 17:45
  • 1335

Linux下定时执行脚本

Linux下定时执行脚本 来源:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html      今天做了个数据库的备份脚本...
  • feng973
  • feng973
  • 2016-08-25 09:52
  • 2502

Linux下定时运行java程序

1、  在MyEclipse中将java程序运行一遍得到class文件后,如下图所示:   右键点击dbtodb工程,选择Export: 点击next: 在JAR file :选择jar包存放的...
  • jiutianhe
  • jiutianhe
  • 2014-11-05 18:27
  • 1313

Linux下定时运行java程序的做法

在linux下面运行java程序,一般情况下我们先打包成jar文件,然后放在linux下,用脚本去执行它。 一,打包java项目。一般用eclipse和netbeans直接把项目打包成jar就可以了,...
  • Fly_Sky520
  • Fly_Sky520
  • 2013-07-16 17:24
  • 6492

linux下执行java程序的sh脚本下载

  • 2015-08-27 11:44
  • 10KB
  • 下载

windows或者linux下执行java程序(.jar)

1、首先使用eclipse生成.jar格式的jar包,项目->导出->JAR文件->下一步->完成 @生成的jar包 2、找到main函数所在的文件以及包名 执行方法:jav...
  • qq_16683355
  • qq_16683355
  • 2017-03-15 16:20
  • 296

LINUX下做JAVA程序启动脚本(优化可执行Raspbian Debian9U1)

1. 正式可以运行的版本,在原来的内容上跟进编译时的问题,做了一些调整,Raspbian Debian9U1版本上通过 2. LINUX下做JAVA程序启动脚本
  • KevinC007
  • KevinC007
  • 2017-11-29 23:59
  • 43

Linux crontab处理定时任务-------执行java程序

Linux crontab处理定时任务——-执行java程序前提linux服务器必须是安装好jdk 什么是crontab?crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性 被...
  • huanghaopeng62
  • huanghaopeng62
  • 2015-12-29 12:06
  • 2316
    个人资料
    • 访问:21783次
    • 积分:557
    • 等级:
    • 排名:千里之外
    • 原创:76篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类