真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用linux的shell腳本調(diào)用javamain方法

Shell是什么:

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)陽西免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

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

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

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

linux shell腳本調(diào)用java main方法解決方法:

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


標(biāo)題名稱:如何使用linux的shell腳本調(diào)用javamain方法
轉(zhuǎn)載注明:http://weahome.cn/article/ipoges.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部