Linux下獨立執行Java程式

來源:互聯網
上載者:User

Linux系統裡,很多時候因為種種原因,需要把java程式單獨執行,而不是在web容器環境下執行,這時候很多容器資源是無法直接取到的,比如資料庫連接池配置的資料來源等等,還有就是程式運行需要的第三方jar包。

這種情況下需要設定環境變數,比如java路徑,classpath環境變數等等,對於資料來源配置還需要特殊處理,比如資料來源設定檔、日誌設定檔、資源檔載入等問題,舉例說明:

#!/bin/bashtempClassPath=$CLASSPATH;flist=/home/smsdp/SohuMbRegist/lib/*.jar;for i in  $flist;domypath=$i;CLASSPATH=$CLASSPATH:$mypath;doneCLASSPATH=$CLASSPATH:$tempClassPath;export CLASSPATHexport JAVA_HOME=/usr/local/javacd /home/smsdp/SohuMbRegist/classesnohup $JAVA_HOME/bin/java com.sohu.zxl.ivr.JobService &  >/dev/null

上面這段代碼是個shell指令檔:

1. 首先,聲明兩個變數,tempClassPath為當前的環境變數$CLASSPATH,flist 為一個目錄檔案數組可以認為是一個數組);

2. 接下來拼接jar路徑,並賦值給當前$CLASSPATH環境變數;

3. 設定環境變數;

4. 進入class目錄;

5. 執行程式,並輸出到 nohup.out 虛擬檔案內。

獨立java程式執行完後,線程自動銷毀,可以通過命令:ps -ef|grep JobService 尋找,程式執行時可以找到線程ID,待執行後再尋找則找不到該線程。

可以通過定時job ,crontab 來設定程式執行時間,頻率..........當然也可以在java程式裡面控制執行時間頻率,但是通過crontab控制更加靈活,對於執行時間經常變化的,建議通過crontab控制。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.