shell腳本啟動jar
1、上傳jdk的安裝包到 /rootjdk-8u131-linux-x64.tar.gz
2、確認系統是否已經安裝過jdkrpm -qa|grep jdkrpm -e _nodeps 軟體名稱 //如果檢查到有安裝就執行卸載命令
3、解壓縮jdk的安裝包到指定目錄
tar -xvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
4、進入解壓縮目錄
cd /usr/local
5、修改jdk的文件夾名稱mv jdk1.8.0_131 jdk
6、配置環境變數修改環境變數配置文件:vi /etc/profile,點 i鍵進入編輯模式,按ESC 輸入:wq 保存退出
7、重新載入環境配置,source /etc/profile
8、測試JDK安裝是否ok
java -version
9、編寫hello.java
vi Hello.java
然後ESC :wq退出
⑵ python 需要調用 /shell/目錄下的run.sh。在腳本中調用的是一個jar包,jar包可
我用的spss版本是22.0,也是最近為了使用SPSS Python Essentials才安裝的這個版本,大家可以參考這篇文章,以便正確安裝spss 22.0。
安裝好了spss22.0以後,如果你按照上面的安裝教程進行的安裝,SPSS Python Essentials就自動的安裝在了你的spss22.0的安裝目錄下。接下來我們要進行必要的設置。
打開spss22的界面,打開編輯菜單下的【選項】
切換到腳本選項下,我們設置一下預設腳本語言為python,點擊【應用】
切換到【文件位置】選項下,設置python的位置,我們有兩個選項,一個是隨IBM SPSS安裝的位置,這就是說,spss22在安裝的時候自動安裝了python2.7,如果我們想要使用這個python,就選擇第一個選項;但是我現在有一個更好的建議,使用我們自己安裝的python,也就是說在安裝spss之前就有一個python安裝好了,我現在想使用這個python,我們可以設置python的其他安裝,然後找到這個python安裝的目錄,最後點擊確定就可以了。為什麼我建議使用第二種選擇呢?因為我的python下有很多安裝好的擴展包,需要在處理數據的時候調用,以後安裝新的擴展包也很方便。如果使用是、隨spss安裝的python,還需要另行安裝這些擴展包
設置完成以後,我們想要啟動python的編輯窗口,需要在開始菜單中啟動,如圖所示。不能直接從python的安裝目錄里啟動。
另外,spss22還有一個bug,我們雖然設置了Python的主目錄,但是在新建腳本的時候,還是用的隨spss安裝的python的shell。所以想要使用python腳本,你就從上面那個方面里啟動python shell
原作者:Delta數據工作室
⑶ 想請大神寫一個在linux環境下用shell腳本控制jar的啟動和停止,類似於一個後台服務那種的。
得看你的程序是什麼樣子 一般腳本中主要需要定義好你的啟動用戶 java的環境變數 jar需要調用的類和庫 然後用case語句 來通過判斷腳本後面鍵入的值 如start stop等一類的內容 來執行或結束jar程序
⑷ 關於一個shell腳本的解釋問題
cd `dirname $0` //首先cd到腳本所在目錄
jar_file=$(ls *.jar) //然後列出jar格式的文件,並賦值給jar_file變數
mole_name=${jar_file%.*} //刪掉最後一個 . 及其右邊的字元串,即擴展名
now_date=$(date +%Y-%m-%d) //按格式取當前日期
// 下面這句是查找名為變數 mole_name 的進程,然後再找java進程。// 然後顯示出第一行,第二個域。總的來說就是查找進程的PID
pid=$(ps -ef|grep ${mole_name}|grep java|head -n 1|awk '{print $2}');
echo kill ${mole_name} pid:${pid} // 結束上面找到進程
kill -9 $pid
// 設置JVM運行參數,最小內存386mb,最大內存512mb
JAVA_OPTS="-Xms386m -Xmx512m" 設置
// 如果沒有logs目錄則新建if [ ! -d "logs" ]; then
mkdir logs
fi
// 重新執行變數jar_file變數指向的文件,並輸出日誌到logs目錄下的.out文件中,同時重新查找pid。
nohup java $JAVA_OPTS -jar ${jar_file} $params > logs/${mole_name}.out 2>&1 &
pid=$(ps -ef|grep ${mole_name}|grep java|head -n 1|awk '{print $2}');// 顯示進程信息。
echo mole:${mole_name} startup finish pid:${pid}.
sleep 0.5
echo ${pid} > ${mole_name}.pid
綜上所述,這段代碼用於重啟spring boot進程。
⑸ shell腳本調用外部腳本的問題
估計是因為腳本1中使用了cd命令改變了當前路徑,腳本2中繼承了腳本1中的當前路徑;而一旦腳本1結束回到主shell,這個當前路徑也就不復存在。
如果在腳本2基於這個當前路徑啟動jar包前,腳本1結束了,那麼當前路徑肯定回到了主shell的設置去了,jar包就啟動不了了。
任何外部調用的shell命令執行都會產生一個進程,都會有一個pid,即使最終執行是返回錯誤。
所以,兩點建議:
1)腳本1調用2的命令行後加上 &,置入後台運行,這樣就不會因為腳本1的結束而影響腳本2的運行。
2)腳本中盡量不要用cd命令跳轉目錄,盡量使用絕對路徑。
⑹ linux shell調用java的jar包怎麼寫
這個應該不可能吧, 沒有jre光是你自己的java代碼怎麼可能執行. 唯一的可能就是你把jre也一起打包進你的jar文件, 然後再shell裡面運行jar文件的時候指定classpath到你的jar包路徑下的jre目錄
⑺ shell定時執行腳本啟動jar程序的問題
在腳本里聲明java環境變數,加上下列語句在#! /bin/sh底下,注意.後面有空格
. ~/.bash_profile
. /etc/profile
⑻ 在shell裡面怎麼執行一個可執行的jar,並且執行jar需要兩個參數
把下面的代碼保存到文件裡面,然後賦予可執行許可權,最後./文件名 執行
#!/bin/bash
java -jar xxxx.jar 參數1 參數2
⑼ Linux shell腳本啟動一個jar為什麼拋出NoClassDefFoundError的異常
這個並不是你腳本的問題,而是jar包里的代碼問題:缺少了相關的class文件。問題應該是你的jar包運行需要第三方jar文件吧。