linux 編譯並運行Java文件


因工作需要,調接口時本地訪問不了目標服務器,所以只能在服務器上運行調試。

寫了個腳本來編譯運行。參數輸入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!"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM