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:./
forjarin../lib/*.jar
do
CLASSPATH=$CLASSPATH:$jar
done
echo"$CLASSPATH"
nohup"$JAVA_HOME"/bin/java-Xms256m-Xmx512m-classpath$CLASSPATHcom.huaxia.bbass.speedupMonitor.run.MarkSpeedUpStateRun&
这种格式的区别在于:利用sh脚本语言,循环读取lib包中的jar文件,部署简单。
注意:当读取文件,或者程序运行时,抛出java.lang.OutOfMemoryError:Javaheapspace错误。
可在.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-fcatalina.out点击页面按钮,查看异常,根据异常信息找出问题原因。
windows平台下的对应的是bat文件:
格式如下:
@echooff
REMSETUPCLASSPATH
setCLASSPATH=./
setLIB=./lib
FOR%%FIN(./lib/*.jar)DOcall:setclasspath%%F
echo%CLASSPATH%
goto:startjava
:setclasspath
setCLASSPATH=%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、在Eclipse中的project下的/.settings目录下的.component文件中配置的<wb-moduledeploy-name="bbass">名称
是部署到/tomcat/webapps下的war包名称。并且有很多时候在项目中会将一些图片的路径写为以这个配置名称开头的绝对路径。
2、访问web项目的url的名称(有时候并不是web工程名)即:hhtp://localhost:8080/bbass中的bbass。
配置方法:在工程名右键---->Properties---->WebProjectSettings中设置Contextroot的值
或者在/.settings目录下的.component文件中配置<propertyname="context-root"value="bbass"/>的值。
两者一样的效果,并且会联动修改。
3、项目的名称是在工程的.project文件中配置,无论是直接修改工程名还是在.project文件中配置都一样,联动修改。