Linux 上部署Java应用

                    Linux 上部署Java应用

把一个java应用部署到Linux上,可以打成jar包进行部署,也可以直接把项目以目录的结构部署到服务器上。我今天实现的是以项目目录部署到Linux上。

 

一:本地工程目录结构及主类代码:


一个简单的Java工程,主类是ControlSendSms.java

类的代码:

import com.hnsms.common.CommonUtil;

public class ControlSendSms {

      public static void main(String[] args) {

    String dataName=args[0];

            String configName=args[1];

            String num=args[2];

            String path = args[3];

       

            //设置日志头

            String log_head = path+configName+"_log";

            CommonUtil.LOG_HEAD = log_head;

            CommonUtil.WriteLog("传递参数   为:"+dataName+"       "+configName+"             "+num);

            CommonUtil.WriteLog("************短信分发各表程序启动***************

            ******");

            ControlSendDAO.initialParm(dataName, configName);

            ControlSendDAO.branchTable((new Integer(num)).intValue());

        }

 }

把上面的工程打成zip包后,传到服务器上后解压即可。

 

二:服务器上运行脚本

start.sh*

  1. #声明变量
  2. CURRENT_APP_HOME="/home/was/send/log/"
  3. MY_NUM1="sms10086"
  4. MY_NUM2="tab_config"
  5. MY_NUM3=500
  6. #下面是引入lib目录下的jar包文件
  7. export CLASSPATH=./:../lib/commons-logging.jar:../lib/concurrent.jar:../lib/dom4j.jar:../lib/jboss-remoting.jar:../lib/junit.jar:../lib/log4j-1.2.8.jar:../lib/mx4j-jmx.jar:../lib/ojdbc14_10_2_0_3.jar:../lib/tools.jar
  8. echo "${CURRENT_APP_HOME}"
  9. /usr/bin/java com.hnsms.deal.ControlSendSms ${MY_NUM1} ${MY_NUM2} ${MY_NUM3} ${CURRENT_APP_HOME} &

 

因为主类里需要四个参数:

     String dataName=args[0];

    String configName=args[1];

    String num=args[2];

    String path = args[3];

这里所以运行Javacom.hnsms.deal.ControlSendSms时传了四个参数

/usr/bin/java com.hnsms.deal.ControlSendSms ${MY_NUM1} ${MY_NUM2} ${MY_NUM3} ${CURRENT_APP_HOME} &

声明变量中,开始我范了一个错,脚本代码是这样写的:

MY_NUM1 = "sms10086"

MY_NUM2 = "tab_config"

然后会报 MY_NUM1: command not found ,原来是 等号两边都不能有空格,否则会被Shell解释成命令和命令行参数。 

猜你喜欢

转载自15838341661-139-com.iteye.com/blog/1204292