因工作需要,調接口時本地訪問不了目標服務器,所以只能在服務器上運行調試。
寫了個腳本來編譯運行。參數輸入Java文件名無后綴
#!/bin/bash if [ ! -n "$1" ]; then echo "Please enter a file name!" exit 0 fi JAVA_FILE=$1.java LIB_DIR=`pwd`/lib LIB_JARS=`ls ${LIB_DIR}|grep .jar|awk '{print "'${LIB_DIR}'/"$0}'|tr "\n" ":"` echo -e "starting compile ${JAVA_FILE}...\c" #UNIX shell使文件描述符0與進程的標准輸入相結合,文件描述符1與標准輸出相結合,文件描述符2與標准出錯輸出相結合。 #該處的 2>&1 代表着錯誤輸出 輸出到 標准輸出 COMPILE_RESULT=`javac -classpath ${LIB_JARS} ${JAVA_FILE} 2>&1` if [ -n "$COMPILE_RESULT" ]; then echo "" echo "$COMPILE_RESULT" exit 0 fi echo "Complie OK!" JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " JAVA_MEM_OPTS=" -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 " STDOUT_FILE=`pwd`/log/$1.log CLASS_FILE=$1 echo -e "Starting the ${CLASS_FILE} ...\c" java ${JAVA_OPTS} ${JAVA_MEM_OPTS} -classpath ${LIB_JARS} ${CLASS_FILE} > ${STDOUT_FILE} 2>&1 echo "" echo "Run OK!"