持之以恒

记录本
posts - 4, comments - 32, trackbacks - 0, articles - 74
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

将Java程序部署到Linux上并让其定期执行

Posted on 2012-03-23 10:36 小白19870626 阅读(169) 评论(0)  编辑  收藏 所属分类: linux
 

一、环境介绍:

SecureCRT5.1+winXP +WMware+Redhat

注:如果SecureCRT连不上虚拟机上的linux则应注意两个地方,一个是虚拟机上的网卡是否是用的桥接,或是直接连到物理网卡,ip是否与xp机的ip在同一个网段.如果在虚拟机上的linux 能访问外网,但是还不能连是则在linux的终端上输入services iptables stop这后就可以连上了.

二、在linux上安装jdk

去java的官网下一个适合linux的jdk,我们这里下一个jdk-6u4-linux-i586.bin,用SecureCRT连上linux,进入我们将要放jdk的目录,输入rz,在弹出的对说框中选择我们下的jdk将其传到linux上去.用ls命令看一下文件是否传上来了,然后给这个文件加上可执行的权限: chmod +x jdk-6u4-linux-i586.bin,然后再执行这个文件:. jdk-6u4-linux-i586.bin这时你会看到jdk的安装信息.当要你输入yes or no时输入yes.安装完成后,我们配置一下java的环境变量,修改/etc/profile文件:vi /etc/proifle 然后按下字母a 进入插入模式,在最后加入如下几行:

PATH=$PATH:/usr/java/jdk1.6/bin
export PATH

JAVA_HOME=/usr/java/jdk1.6
export JAVA_HOME

按esc键后键入:wq回车保存文件.在终端输入java -version回车如果出现如下的信息则说明你安装jdk成功了

java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

三、写一个java程序,认其记录日志:

用eclipse新建一个工程:linuxtest 包结构如下

--linuxtest/src/com/dao/Appdao.java
--linuxtest/src/com/main/Main.java
--linuxtest/src/log4j.properties

这三个文件内容分别如下:

Appdao:
java:package com.dao;

import org.apache.log4j.Logger;

public class Appdao {
private static final Logger logger=Logger.getLogger(Appdao.class);

public void show(){
logger.info("this is info message");
logger.debug("this is debug message");
logger.error("this is error message");
logger.fatal("this is fatal message");

}

}

Main.java:
package com.main;

import com.dao.Appdao;

public class Main {

public static void main(String[] args) {
Appdao dao=new Appdao();
dao.show();
}


}

log4j.properties

log4j.rootLogger=DEBUG,CONSOLE 
log4j.addivity.org.apache=true 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.Threshold=DEBUG 
log4j.appender.CONSOLE.Target=System.out 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d 
- %c -%-4r [%t] %-5p %c %x - %m%n 
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}
[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n

添加必需的jar包:commons-logging-1.1.1.jar log4j-1.2.8.jar

四、将程序打成jar包

利用 java的jar命令或其它打包命令将程序打成jar包,并测试其在winxp的dos下用java -jar能否执行成功,执行成功了再将其传到linux上去。具体怎么打包查看我的另一篇文章.我这里将程序打包后得到如下文件:linuxtest.jar 和一个lib文件夹,里面放了程序运行所需的jar包.为了传输方便我又将所有的文件压缩成一个zip包:app.zip利用rz命令将其传到linux上的/webapps/目录下

五、编写执行程序的脚本

cd /webapps 进入目录

rz 将app.zip上传到这个目录

unzip app.zip 将文件解压

rm app.zip 删除app.zip

ls 你可以看到如下内容:

lib linuxtest.jar

cat>>start.sh新建一个脚本文件,输入如下内容

java -jar linuxtest.jar

CTRL+D保存文件

chmod +x start.sh 给其加上可执行权限

. start.sh执行脚本运行程序你若看到如下内容则说明你成功了:

[framework] 2008-02-24 19:44:19,181 - com.dao.Appdao -0 
[main] INFO com.dao.Appdao - this is info message
[framework] 2008-02-24 19:44:19,187 - com.dao.Appdao -6 
[main] ERROR com.dao.Appdao - this is error message
[framework] 2008-02-24 19:44:19,188 - com.dao.Appdao -7 
[main] FATAL com.dao.Appdao - this is fatal message

六、将这个程序加到定时任务中去

crontab -l 查看已有的定时任务,

crontab -e 添加或修改定时任务,加入如下行

#每分钟执行一次/webapps/linuxtest/linuxtest.jar

1 * * * * /webapps/linuxtest/start.sh

然后esc,键入:wq回车保存文件

#后是注释

1 * * * * /webapps/linuxtest/start.sh 前面6个位,f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天f6表示要执行的脚本。



小白

只有注册用户登录后才能发表评论。


网站导航: