91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用linux的shell腳本調用java main方法

發布時間:2020-06-15 15:54:42 來源:億速云 閱讀:457 作者:元一 欄目:編程語言

Shell是什么:

實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令并且把它們送到內核。不僅如此,Shell有自己的編程語言用于對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。

Linux提供了像MicrosoftWindows那樣的可視的命令輸入界面--X Window的圖形用戶界面(GUI)。它提供了很多桌面環境系統,其操作就像Windows一樣,有窗口、圖標和菜單,所有的管理都是通過鼠標控制。GNOME。

每個Linux系統的用戶可以擁有他自己的用戶界面或Shell,用以滿足他們自己專門的Shell需要。

linux shell腳本調用java main方法解決方法:

#!/bin/sh  
    #  
    #該腳本為Linux下啟動java程序的通用腳本。即可以作為開機自啟動service腳本被調用,  
    #也可以作為啟動java程序的獨立腳本來使用。  
    #  
    #Author: tudaxia.com, Date: 2011/6/7  
    #  
    #警告!!!:該腳本stop部分使用系統kill命令來強制終止指定的java程序進程。  
    #在殺死進程前,未作任何條件檢查。在某些情況下,如程序正在進行文件或數據庫寫操作,  
    #可能會造成數據丟失或數據不完整。如果必須要考慮到這類情況,則需要改寫此腳本,  
    #增加在執行kill命令前的一系列檢查。  
    #   
    ###################################  
    # 以下這些注釋設置可以被chkconfig命令讀取   
    # chkconfig: - 99 50   
    # description: Java程序啟動腳本   
    # processname: test   
    # config: 如果需要的話,可以配置   
    ###################################   
    #  
    ###################################  
    #環境變量及程序執行參數  
    #需要根據實際環境以及Java程序名稱來修改這些參數  
    ###################################  
    #JDK所在路徑  
    JAVA_HOME="/usr/java/jdk1.8.0_102"
    #執行程序啟動所使用的系統用戶,考慮到安全,推薦不使用root帳號  
    #RUNNING_USER=portal  
    #Java程序所在的目錄(classes的上一級目錄)  
    APP_HOME=/opt/tmp/geecuser/geec_calculate    #需要啟動的Java主程序(main方法類)  
    APP_MAINCLASS=com.ai.core.start.Main  
    #拼湊完整的classpath參數,包括指定lib目錄下所有的jar  
    CLASSPATH=$APP_HOME/classes  
    for i in "$APP_HOME"/lib/*.jar; do  
       CLASSPATH="$CLASSPATH":"$i"  
    done      
    #java虛擬機啟動參數  
    JAVA_OPTS="-ms1024m -mx1024m -Xmn512m -Djava.awt.headless=true -XX:MaxPermSize=256m"  
      
    ###################################  
    #(函數)判斷程序是否已啟動  
    #  
    #說明:  
    #使用JDK自帶的JPS命令及grep命令組合,準確查找pid  
    #jps 加 l 參數,表示顯示java的完整包路徑  
    #使用awk,分割出pid ($1部分),及Java程序名稱($2部分)  
    ###################################  
    #初始化psid變量(全局)  
    psid=0  
      
    checkpid() {  
       javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAINCLASS`  
      
       if [ -n "$javaps" ]; then  
          psid=`echo $javaps | awk '{print $1}'`  
       else  
          psid=0  
       fi  
    }  
      
    ###################################  
    #(函數)啟動程序  
    #  
    #說明:  
    #1. 首先調用checkpid函數,刷新$psid全局變量  
    #2. 如果程序已經啟動($psid不等于0),則提示程序已啟動  
    #3. 如果程序沒有被啟動,則執行啟動命令行  
    #4. 啟動命令執行后,再次調用checkpid函數  
    #5. 如果步驟4的結果能夠確認程序的pid,則打印[OK],否則打印[Failed]  
    #注意:echo -n 表示打印字符后,不換行  
    #注意: "nohup 某命令 >/dev/null 2>&1 &" 的用法  
    ###################################      start() {  
       checkpid  
      
       if [ $psid -ne 0 ]; then  
          echo "================================"  
          echo "warn: $APP_MAINCLASS already started! (pid=$psid)"  
          echo "================================"  
       else  
          echo -n "Starting $APP_MAINCLASS ..."  
          JAVA_CMD="nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAINCLASS >$APP_HOME/log/nohup 2>&1 &"  
          eval $JAVA_CMD  
          checkpid  
          if [ $psid -ne 0 ]; then  
             echo "(pid=$psid) [OK]"  
          else  
             echo "[Failed]"  
          fi  
       fi  
    }  
      
    ###################################  
    #(函數)停止程序  
    #  
    #說明:  
    #1. 首先調用checkpid函數,刷新$psid全局變量  
    #2. 如果程序已經啟動($psid不等于0),則開始執行停止,否則,提示程序未運行  
    #3. 使用kill -9 pid命令進行強制殺死進程  
    #4. 執行kill命令行緊接其后,馬上查看上一句命令的返回值: $?  
    #5. 如果步驟4的結果$?等于0,則打印[OK],否則打印[Failed]  
    #6. 為了防止java程序被啟動多次,這里增加反復檢查進程,反復殺死的處理(遞歸調用stop)。  
    #注意:echo -n 表示打印字符后,不換行  
    #注意: 在shell編程中,"$?" 表示上一句命令或者一個函數的返回值  
    ###################################      stop() {  
       checkpid  
      
       if [ $psid -ne 0 ]; then  
          echo -n "Stopping $APP_MAINCLASS ...(pid=$psid) "  
          kill -9 $psid          if [ $? -eq 0 ]; then  
             echo "[OK]"  
          else  
             echo "[Failed]"  
          fi  
      
          checkpid  
          if [ $psid -ne 0 ]; then  
             stop  
          fi  
       else  
          echo "================================"  
          echo "warn: $APP_MAINCLASS is not running"  
          echo "================================"  
       fi  
    }  
      
    ###################################  
    #(函數)檢查程序運行狀態  
    #  
    #說明:  
    #1. 首先調用checkpid函數,刷新$psid全局變量  
    #2. 如果程序已經啟動($psid不等于0),則提示正在運行并表示出pid  
    #3. 否則,提示程序未運行  
    ###################################      status() {  
       checkpid  
      
       if [ $psid -ne 0 ];  then  
          echo "$APP_MAINCLASS is running! (pid=$psid)"  
       else  
          echo "$APP_MAINCLASS is not running"  
       fi  
    }  
      
    ###################################  
    #(函數)打印系統環境參數  
    ###################################      info() {  
       echo "System Information:"  
       echo "****************************"  
       echo `head -n 1 /etc/issue`  
       echo `uname -a`  
       echo  
       echo "JAVA_HOME=$JAVA_HOME"  
       echo `$JAVA_HOME/bin/java -version`  
       echo  
       echo "APP_HOME=$APP_HOME"  
       echo "APP_MAINCLASS=$APP_MAINCLASS"  
       echo "****************************"  
    }  
      
    ###################################  
    #讀取腳本的第一個參數($1),進行判斷  
    #參數取值范圍:{start|stop|restart|status|info}  
    #如參數不在指定范圍之內,則打印幫助信息  
    ###################################  
    case "$1" in  
       'start')  
          start  
          ;;  
       'stop')  
         stop  
         ;;  
       'restart')  
         stop  
         start  
         ;;  
       'status')  
         status  
         ;;  
       'info')  
         info  
         ;;  
      *)  
         echo "Usage: $0 {start|stop|restart|status|info}"  
         exit 1  
    esac  
    exit 0

以上就是linux shell腳本如何調用java main方法?的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉林市| 灯塔市| 庄浪县| 西城区| 宁都县| 瑞金市| 宝丰县| 泰顺县| 罗甸县| 白银市| 黄龙县| 甘肃省| 沾益县| 怀来县| 台东县| 澳门| 通江县| 旬邑县| 天柱县| 大兴区| 吴江市| 安泽县| 彭泽县| 连州市| 宣城市| 丹凤县| 南丰县| 苍南县| 北安市| 象山县| 平邑县| 五指山市| 康定县| 荔波县| 五河县| 绥中县| 瑞昌市| 军事| 雷波县| 磐安县| 延安市|