日期:2014-05-16  浏览次数:20549 次

程序的Linux部署

一、小程序部署在Linux上的步骤:

1、jar包:运行程序所用到的所有的jar包。

2、一些配置文件:如运行用到的xml以及properties等文件。

3、记录程序运行的logs,这些指定的log文件名可以在log4j.properties中配置。

4、启动运行脚本的sh文件。

?

第一种sh文件格式

举例一个sh文件如下:

#!/bin/sh
# ----------------------------------------
JAVA_HOME=/usr/java/jdk1.5.0_06
DataCompare_HOME=/usr/local/bbass_application/bbass-compare/
DataCompare_LIB=/usr/local/bbass_application/common-lib/
cd "$DataCompare_HOME"
DataCompare_PATH="$DataCompare_LIB"bbass-interface-4.25.jar:"$DataCompare_LIB"jxl.jar:"$DataCompare_LIB"commons-collections.jar:"$DataCompare_LIB"commons-bbass-dao-4.25.jar:"$Dat
aCompare_LIB"antlr-2.7.4.jar:"$DataCompare_LIB"asm-1.5.3.jar:"$DataCompare_LIB"quartz-1.4.5.jar:"$DataCompare_LIB"spring.jar:"$DataCompare_LIB"commons-logging.jar:"$DataCompare_L
IB"log4j-1.2.8.jar:"$DataCompare_LIB"aopalliance.jar:"$DataCompare_LIB"c3p0-0.8.4.5.jar:"$DataCompare_LIB"cglib-2.1.2.jar:"$DataCompare_LIB"commons-DataCompares.jar:"$DataCompare
_LIB"commons-dbcp-1.2.1.jar:"$DataCompare_LIB"commons-lang-2.0.jar:"$DataCompare_LIB"commons-pool-1.2.jar:"$DataCompare_LIB"dom4j-1.4.jar:"$DataCompare_LIB"edtftpj-1.5.2.jar:"$Da
taCompare_LIB"ehcache-1.1.jar:"$DataCompare_LIB"framework-binding-1.2.jar:"$DataCompare_LIB"ognl.jar:"$DataCompare_LIB"hibernate3.jar:"$DataCompare_LIB"jboss-j2ee.jar:"$DataCompa
re_LIB"ojdbc14.jar
CLASSPATH="DataCompareBasePortBySubRegion_Thread":"$DataCompare_HOME":"$DataCompare_PATH":"$CLASSPATH"
echo "$CLASSPATH"
"$JAVA_HOME"/bin/java -Xms512m -Xmx512m -classpath "$CLASSPATH" com.huaxia.bbass.datacompare.trigger.DataCompareTrigger /"$DataCompare_HOME"/applicationContext-datacompareBasePor
tBySubRegion.xml &

在sh文件中可以说明:

1、指定程序运行的当前路径

2、加载jar包的路径

3、调用jdk的路径

4、可以对该进程取名

5、可以指定分配内存的大小(这个在一些情况下,可以解决内存溢出问题)

上述文件中:变量CLASSPATH中指定的DataCompareBasePortBySubRegion_Thread为进程名,

sh文件中多个并列的路径一般用“:”分隔开。CLASSPATH中指定了所有的路径。

?$JAVA_HOME"/bin/java -Xms512m -Xmx512m -classpath "$CLASSPATH"这里引用CLASSPATH变量,后面跟着是jar中存在的启动类,类后面有时会跟着main方法需要的参数。“&”符号是指定该进程可以在后台执行。

?

第二种部署程序sh文件格式:

?#! /bin/sh
JAVA_HOME=/usr/java/jdk1.5.0_06
CLASSPATH=Speedup_MarkState:./
for jar in ../lib/*.jar
do
CLASSPATH=$CLASSPATH:$jar
done
echo "$CLASSPATH"

nohup "$JAVA_HOME"/bin/java -Xms256m -Xmx512m -classpath $CLASSPATH com.huaxia.bbass.speedupMonitor.run.MarkSpeedUpStateRun &

这种格式的区别在于:利用sh脚本语言,循环读取lib包中的jar文件,部署简单。

?

?

注意:当读取文件,或者程序运行时,抛出java.lang.OutOfMemoryError: Java heap space错误。

可在.sh文件中设置:-Xms768m -Xmx768m

如:/usr/java/jdk1.5.0_06/bin/java -server -Xms768m -Xmx768m -classpath "$CLASSPATH" com.huaxia.bbass.speedupMonitor.run.SpeedUpMonitor &

?

?

?

windows平台中运行程序可编写bat文件。

二、解决一些web界面报错的方法步骤:

1、现网界面报错

2、可以登录现网web服务器,cd到web项目发布的tomcat下

3、tail -f catalina.out? 点击页面按钮,查看异常,根据异常信息找出问题原因。

windows平台下的对应的是bat文件:

格式如下:

@echo off????
REM SET UP CLASSPATH????
set CLASSPATH=./
set LIB=./lib
FOR %%F IN (./lib/*.jar) DO call :setclasspath %%F
echo %CLASSPATH%???
goto :startjava????
:setclasspath????
set CLASSPATH=%CLASSPATH%;%LIB%/%1
goto :eof????
:startjava????
java -classpath %CLASSPATH% RefreshPortForAdslplus

?

?三、部署web项目到公司测试环境

linux:安装好linux下的tomcat,将本地测试正常的web功能打成war包,上传到公司测试服务器的/tomcat/webapps下,

检查好目录/tomcat/conf/server.xml配置好的端口号,启动/tomcat/bin/startup.sh文件,日志在/tomcat/logs/catalina.out中,

即可页面访问。

注意:1、