Linux 上部署Java应用 博客分类: Linuxjava 服务 shelljava部署
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*
- #声明变量
- CURRENT_APP_HOME="/home/was/send/log/"
- MY_NUM1="sms10086"
- MY_NUM2="tab_config"
- MY_NUM3=500
- #下面是引入lib目录下的jar包文件
- 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
- echo "${CURRENT_APP_HOME}"
- /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];
这里所以运行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解释成命令和命令行参数。
下一篇: java书店系统毕业设计 用户模块(3)