1. 程式人生 > >shell 指令碼啟動jar程式

shell 指令碼啟動jar程式

Linux下啟動jar包程式,直接上步驟:

1、首先,maven專案打成一個jar包,同時使用dependency:copy-dependencies命令匯出依賴的jar包,把匯出的包和專案jar包都放進lib資料夾裡

2、編寫shell指令碼:

#!/bin/bash
export JAVA_HOME=/home/program/java/jdk1.8.0_60              ###jdk安裝路徑
java=$JAVA_HOME/bin/java

JAVA_OPTS=$JAVA_OPTS:"-Xms1024m -Xmx1024m"
export JAVA_OPTS
SERVER_HOME=/opt/nutch                     ###放置lib資料夾和shell的目錄
LIBDIR=$SERVER_HOME/lib

CONFDIR=$SERVER_HOME/conf                  ###可去掉,放置配置檔案
export CONFDIR

export LIBDIR
CLASSPATH=${CLASSPATH}:${LIBDIR}
CLASSPATH=${CLASSPATH}:${CONFDIR}:${LIBDIR}


for cdir in ${LIBDIR}/*.jar
do
 CLASSPATH=$CLASSPATH:$cdir
 export CLASSPATH
done
export CLASSPATH
exec $java com.yaochufa.jframework.nutch.AppStarter $* >logs/stdout.log 2>&1 &                   ###指定啟動的程式類

#tail -f /home/yang/program/file/stock_task/logs/stdout.log

可在啟動的程式類main方法中加入以下程式碼:

CountDownLatch latch =new CountDownLatch(1);
latch.await();

3、linux進入目錄,賦予shell指令碼可執行的許可權,執行shell

這時會出現一個錯誤:-bash: ./nutch.sh: /bin/bash^M: bad interpreter: No such file or directory

主要原因是nutch.sh是我在windows下編輯然後上傳到linux系統裡執行的。.sh檔案的格式為dos格式。而linux只能執行格式為unix格式的指令碼。

我們可以通過vi編輯器來檢視檔案的format格式。步驟如下:

1.首先用vi命令開啟檔案

Shell程式碼  收藏程式碼
  1. [[email protected] test]# vi nutch.sh   

2.在vi命令模式中使用 :set ff 命令

可以看到改檔案的格式為dos

3.修改檔案format為unix

方法一:使用vi修改檔案format

命令:set ff=unix

執行完後再通過set ff命令檢視檔案格式,結果如下:

方法二:直接使用dos2unix命令修改

Shell程式碼  收藏程式碼
  1. [[email protected] test]# dos2unix nutch.sh   
  2. dos2unix: converting file test.sh to UNIX format ...  

 修改完後再次執行./test.sh,執行正確:

Shell程式碼  收藏程式碼
  1. [[email protected] test]# ./nutch.sh   
  2. test shell   

參考資料:

相關推薦

shell 指令碼啟動jar程式

Linux下啟動jar包程式,直接上步驟: 1、首先,maven專案打成一個jar包,同時使用dependency:copy-dependencies命令匯出依賴的jar包,把匯出的包和專案jar包都放進lib資料夾裡 2、編寫shell指令碼: #!/bin/bash

Linux shell指令碼啟動 停止 重啟jar

  最近做的微服務jar包想弄在持續整合中自動化部署,所以首先得有一個操作jar包的指令碼 只需將jar檔案的路徑替換到APP_NAME的值就可以了,其他不用改 注意:window編輯的shell檔案,通過WinSCP上傳的Linux伺服器,需要改變檔案的格式(檢視檔案格式,vim編

linux--shell指令碼啟動和停止jar

完整指令碼啟動和停止jar包 #! /bin/sh PORT=8086 HOME='/usr/local/beta' LOG_HOME='/usr/local/beta/build' LOG_FILE='act-service.log' JAR_HOME=act-1.0.

Linux shell指令碼啟動 停止 重啟服務(jar

 注意:window編輯的shell檔案,通過WinSCP上傳的Linux伺服器,需要改變檔案的格式(檢視檔案格式,vim編輯後輸入 :set ff) #!/bin/bash export JAVA_

【java】Linux使用nohup命令啟動sh shell 指令碼,java程式無限迴圈啟動問題。解決方案

一·背景 專案使用spring boot 搭建。在Linux作業系統使用nohup命令啟動sh shell 指令碼,程式無限迴圈啟動,只要是 讓程式在後臺啟動 都會無限迴圈啟動(程式本來應該啟動完畢的,但是從日誌上看程式又再次啟動了一遍,無限迴圈,而且程式也無法正常訪問)

寫一個shell指令碼啟動伺服器

使用shell指令碼寫一個一鍵啟動伺服器 ####由於我們伺服器使用的docker, nginx和 redis 還有mysql都是docker啟動好的 我們專案使用supervisor程序管理工具,需要提前配置,但是不知道什麼原因,以前的環境配置出了問題,supervisor不

idea自動部署springboot jar包到遠端伺服器並通過指令碼啟動jar

 1.連線遠端伺服器:Tools->Deployment->Configuration 2.1配置好之後開啟遠端服務就可以直接在idea中進行拖拽檢視 2.2.也可以通過專案右擊deployment上傳jar到伺服器,此時jar會上傳到第一步圖三中配置的

shell指令碼啟動spring boot專案

Spring Boot專案啟動 我們知道打包好的Spring Boot專案這樣啟動 java -jar -Dfile.encoding=utf-8 test-0.0.1-SNAPSHOT.jar 在linux中,常常使用nohup後臺啟動其他程式,

寫一個shell指令碼啟動伺服器 -----python

使用shell指令碼寫一個一鍵啟動伺服器 由於我們伺服器使用的docker, nginx和 redis 還有mysql都是docker啟動好的 我們專案使用supervisor程序管理工具,需要提前配置,但是不知道什麼原因,以前的環境配置出了問題,sup

sh指令碼啟動java程式

#!/bin/sh #專案部署路徑 WEB_HOME=/data/project/PROJECT-ONE #jdk路徑 JAVA_HOME=/data/java/jdk1.7.0_80 #ProjrctOneClient  為main入口的類名稱 PID=`$JAVA_

shell指令碼執行Java程式

#!/bin/sh export APP_HOME=/home/lyh/eclipse_workspace/JenaReadSubstance export APP_SRC=$APP_HOME/src/jena/examples/rdf export APP_CLASSPATH=$APP_HOME/bin/j

jenkins自動部署中執行shell指令碼啟動tomcat,但是tomcat不啟動的問題

Jenkins會在構建完成後使用processTreeKiller殺掉了所有子程序,而且這是Jenkins的預設行為。其實回頭來看這個問題,就發現Jenkins的做法非常合理。當一次build異常結束,或被人終止時,必然需要結束所有這次build啟動的子程序。下面的link提供了更多細節,以及解決方法。htt

shell指令碼編寫小程式

求1-100的加法,並輸出1+2+3+4+5+6+7+…+100? #!/bin/bash sum=1 str='1' i=2 for (( i; i<=100; i++)) do

linux shell 指令碼啟動Java總結

linux shell 使用總結 Linux shell對於我們去傻瓜式的去操作一系列的命令非常的方便,比如啟動java程式,啟動tomact也是通過操作shell來處理的。比如下面操作啟動Tomact 由於使用者不懂配置處理JDK這些都是需要我們來處理的哦

伺服器VPN配置教程(2)——介面配置法+shell指令碼啟動

【內容摘要】 做資料採集經常需要爬取境外網站的內容,除了在採集程式碼中新增代理模組外,這裡介紹一種伺服器全域性代理的方法,只要購買的VPN服務支援pptp方式或L2TP方式,就可以使用本文的教程對伺服器進行全域性翻牆。 【正文】 在上一篇文章http:

linux 啟動或停止jar shell指令碼

 shell指令碼 # jar啟動shell命令 #startup.sh java -jar project.jar & # 注意:必須有&讓其後臺執行,否則

shell指令碼判斷某個linux程式是否在正常執行,如果不是就啟動

#! /bin/bash #  author qzlink #  time  2014-9-19 #  program : check program running .. function check(){     count=`ps -ef |grep $1 |grep

linux 編寫啟動 停止jarshell指令碼

首先用 java -version 檢視一下是否安裝好了JDK,如果沒有需要先安裝JDK 點選此處進入 linux裝JDK的步驟 指令碼存放目錄結構 注:指令碼存放在bin檔案下,jar存放在li

後臺啟動和關閉jarshell指令碼

1.後臺啟動 startTest.sh#設定工程路徑 project_path=/root/test cd $project_path #nohup後臺啟動,輸出日誌到test.log nohup java -jar test.jar >test.log & #

linux--shell指令碼批量啟動和停止jar

指令碼程式碼all.sh #! /bin/sh # 埠號 PORTS=(8084 8083 8085 8086) # 系統模組 MODULES=(mcht system user act) # 系統模組名稱 MODULE_NAMES=(商戶模組 系統模組 使用者模組 活動