サーバ上でmainメソッドを実行する方法

3152 ワード

詳細
1.mavenプロジェクトを新規作成し、テストクラスを作成し、pom.xmlファイルには、次の内容が追加されます.
 
jar


    UTF-8
    1.8
  




		
		  
			    org.apache.maven.plugins  
			    maven-jar-plugin  
			    2.4  
			    
			    	${jdk.version}
					${jdk.version}
					${project.build.sourceEncoding}
        			
			   		target/classes
			          
			            
			                true  
			                ./  
			                com.crt.member.sersordata.MemberService  
			              
			         
			   		${project.build.directory}/lib
			      
			
			
				org.apache.maven.plugins
				maven-dependency-plugin
				
					
						copy
						package
						
							copy-dependencies
						
						
							${project.build.directory}/lib
						
					
				
			
		
	

 2. mvn clean packageでこのプロジェクトをパッケージ化すると、依存するパッケージがtarget/libディレクトリの下にヒットします.
 
 3. 作成start.sh実行スクリプト
 
#!/bin/bash
source /etc/profile

if [ "`ps -ef |grep crt-apigateway.jar|grep -v grep |awk '{print $2}'`" ];then
 for pid in `ps -ef |grep crt-apigateway.jar|grep -v grep |awk '{print $2}'`;do
   kill -9 $pid
 done
fi
#export JAVA_HOME=/app/jdk
export PATH=$JAVA_HOME/bin:$PATH

APP_HOME=/tmp/sersordata/target/lib
for i in "$APP_HOME"/*.jar
do
 CLASSPATH="$CLASSPATH":"$i"
done

export CLASSPATH=.:$CLASSPATH

 echo ${CLASSPATH}
 echo $JAVA_HOME


java -Xms2048M -Xmx2048M -Xmn512M -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -Dfile.encoding=UTF-8 -Xms32m -Xmx200m com.crt.member.sersordata.MemberService -classpath ${CLASSPATH}

 4. プロジェクトパッケージとstart.shサーバディレクトリの下に置くstart.shファイル、mainメソッドが実行されます.