?
? ? ? ? ? ? ? ? ? ??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*
?
因为主类里需要四个参数:
?????String?dataName=args[0];
? ? String?configName=args[1];
? ? String?num=args[2];
? ? String?path?=?args[3];
这里所以运行Java类com.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解释成命令和命令行参数。?
?