Java编写的普通的main函数在linux服务器下面的发布过程
一:在Eclipse中将java项目转成maven项目。为windows配置maven的bin路径
二:在dos下面用 mvn clean package将项目生成一个jar文件。
三:在磁盘上创建search文件夹,里面包括两个子文件夹,bin,lib
1. lib里面存放mvn生产的项目的jar文件以及项目外加的jar包文件
2. bin里面存放在linux里面启动的start.sh的shell脚本文件
四:用winscp将windows下面的search文件传输到linux里面
五:在linux下面找到bin目录下面的start.sh文件,然后用 sh start.sh执行脚本文件
问题:start.sh是在windows下面编写的,一些编译方式不同,有可能存在看不见的字符,脚本文件是dos格式的,在每一行的行尾以\r\n来标识,其其ASCII码分别是0x0D, 0x0A.
解决方法:用vi编辑start.sh文件,在命令模式下输入 setfileformat=unix 保存后退出。
六:用sh start.sh &是后台执行start.sh文件
Start.sh文件
#!/bin/sh
ARTIFACTID="searches"
VERSION="0.0.1-SNAPSHOT"
RECM_HOME=$PWD
dirname $0 | grep "^/" >/dev/null
if [ $? -eq 0 ];then
RECM_HOME=`dirname $0`
else
dirname $0 | grep "^\." > /dev/null
retval=$?
if [ $retval -eq 0 ];then
RECM_HOME=`dirname $0|sed "s#^.#$RECM_HOME#"`
else
RECM_HOME=`dirname $0|sed "s#^#$RECM_HOME/#"`
fi
fi
RECM_HOME=`dirname $RECM_HOME`
RECM_CLASSPATH=''
jars=`ls $RECM_HOME/lib/`
for jar in $jars
do
RECM_CLASSPATH="$RECM_CLASSPATH"':'"$RECM_HOME/lib/$jar";
done
RECM_CLASSPATH=$RECM_CLASSPATH':."'
echo "\n RECM_HOME=$RECM_HOME \n"
echo "RECM_CLASSPATH=$RECM_CLASSPATH\n"
cd $RECM_HOME
java -DRECM_HOME="$RECM_HOME"-Dlog4j.configuration="file:$RECM_HOME/log4j.properties" -classpath$RECM_CLASSPATH com.izp.searches.RecommendTimer