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

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

java程序的jar包怎么利用shell腳本運行

這篇文章將為大家詳細講解有關(guān)java程序的jar包怎么利用shell腳本運行,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

十多年的瀏陽網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整瀏陽建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“瀏陽網(wǎng)站設(shè)計”,“瀏陽網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

在UBuntu上部署項目的時候,我們往往通過一段shell來啟動程序,甚至是通過crontab定時任務(wù)來定時的調(diào)用java程序,但是很奇怪的一個問題就是,比如我寫了一個如下的shell腳本:

#!/bin/sh
export mypath=/root/project/wishnomal

java -Xmx3000m -Xms3000m -server -d64 -Dfile.encoding=UTF-8 -Dfetch.threads=300 -classpath $mypath/:$mypath/wish3-assembly-1.0.0.jar newstandard.CrawlerNewStandard $*

echo "END"

手動命令行運行該腳本的時候,可以正常運行java程序,但是使用crontab定時任務(wù),貌似就不起效果了

分析可能原因:

 1)是否當前用戶對此shell腳本沒有可執(zhí)行權(quán)限,通過ls -lrt /apps/service/mtk/checking/run.sh查看腳本是有可執(zhí)行,但是有執(zhí)行權(quán)限呀-rwxr-xr-x

 2)既然單獨運行腳本沒問題,那會不會是定時的問題呢?于是寫了一個簡單的輸出的shell腳本通過定時也是沒問題的。說明還是腳本的問題。

后來上網(wǎng)查了下,想到可能是腳本中環(huán)境變量的原因,因為通過crontab運行腳本,是以root用戶,而不是當前用戶,于是cat /etc/profile查看環(huán)境變量,然后修改腳本如下:

分析可能原因:

 1)是否當前用戶對此shell腳本沒有可執(zhí)行權(quán)限,通過ls -lrt /apps/service/mtk/checking/run.sh查看腳本是有可執(zhí)行,但是有執(zhí)行權(quán)限呀-rwxr-xr-x

 2)既然單獨運行腳本沒問題,那會不會是定時的問題呢?于是寫了一個簡單的輸出的shell腳本通過定時也是沒問題的。說明還是腳本的問題。

后來上網(wǎng)查了下,想到可能是腳本中環(huán)境變量的原因,因為通過crontab運行腳本,是以root用戶,而不是當前用戶,于是cat /etc/profile查看環(huán)境變量,然后修改腳本如下:

#!/bin/sh
export mypath=/root/project/wishnomal
export JAVA_HOME=/root/lib/jdk1.7.0_72
PATH=$PATH:$JAVA_HOME/bin

java -Xmx3000m -Xms3000m -server -d64 -Dfile.encoding=UTF-8 -Dfetch.threads=300 -classpath $mypath/:$mypath/wish3-assembly-1.0.0.jar newstandard.CrawlerNewStandard $*

echo "END"

export顯示導(dǎo)出為用戶環(huán)境變量的環(huán)境變量

這樣crontab計劃任務(wù)就正常了。 

修改參考:

#!/bin/sh 
# ----------------------------------------------------------------------------- 
# Start script for the CMGP BOSSCONTROL  
# 
# $Id: run_bosscontrol.sh,v 1.0 2007/11/06 Exp $ 
# ----------------------------------------------------------------------------- 
#指定字符集 
LANG=zh_CN.GBK export LANG 
RUN_HOME=. 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/checking.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/ojdbc14.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/commons-dbutils-1.1.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/log4j-1.2.14.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/dom4j-1.6.jar 
 
export CLASSPATH 
 
java com.**.checking.Checking_Start >> log.out &  

手動命令行運行該腳本的時候,可以正常運行java程序,但是使用crontab定時任務(wù),貌似就不起效果了,很是郁悶?zāi)?,查原因哪,分析可能原因?/p>

 1)是否當前用戶對此shell腳本沒有可執(zhí)行權(quán)限,通過ls -lrt /apps/service/mtk/checking/run.sh查看腳本是有可執(zhí)行,但是有執(zhí)行權(quán)限呀-rwxr-xr-x

 2)既然單獨運行腳本沒問題,那會不會是定時的問題呢?于是寫了一個簡單的輸出的shell腳本通過定時也是沒問題的。說明還是腳本的問題。

后來上網(wǎng)查了下,想到可能是腳本中環(huán)境變量的原因,因為通過crontab運行腳本,是以root用戶,而不是當前用戶,于是cat /etc/profile查看環(huán)境變量,然后修改腳本如下:

#!/bin/sh 
# ----------------------------------------------------------------------------- 
# Start script for the CMGP BOSSCONTROL  
# 
# $Id: run_bosscontrol.sh,v 1.0 2007/11/06 Exp $ 
# ----------------------------------------------------------------------------- 
export PATH=/apps/usr/java/jdk1.5/bin:$PATH 
export JAVA_HOME=/apps/usr/java/jdk1.5 
export JRE_HOME=/apps/usr/java/jdk1.5/jre 
export CLASSPATH=/apps/usr/java/jdk1.5/lib:/apps/usr/java/jdk1.5/jre/lib:$CLASSPATH 
RUN_HOME=/apps/service/checking 
CLASSPATH=$CLASSPATH$RUN_HOME/lib/checking.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/ojdbc14.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/commons-dbutils-1.1.jar 
CLASSPATH=$CLASSPATH:$RUN_HOME/lib/log4j-1.2.14.jar 
 CLASSPATH=$CLASSPATH:$RUN_HOME/lib/dom4j-1.6.jar 
 
export CLASSPATH=$CLASSPATH 
 
java com.**.checking.Checking_Start >> log.out &  

export顯示導(dǎo)出為用戶環(huán)境變量的環(huán)境變量

以上這種jar包是通過eclipse工具export導(dǎo)出,不包含MANIFEST.MF文件,如果使用打包工具Ant,我們可以在打包默認的build.xml文件中設(shè)置Class-Path

將第三方j(luò)ar包加入manifest.mf文件中,且指定程序主類

在build.xml中添加如下內(nèi)容:

 
 
   
    
     
     
     
     
    
   
    
    
    
    
    
    
  

另外,在create manifest文件時,加上:

  
 
 
 

這樣運行ant,打成的jar包中MANIFEST.MF中內(nèi)容如下:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.0 
Created-By: 1.5.0_09-b01 (Sun Microsystems Inc.) 
Implementation-Title: fee task 
Implementation-Version: 1.0 
Implementation-Vendor: Aspire 
Main-Class: com.aspire.cmgp.flowcontrol.server.FlowControlServer 
Class-Path: lib/cmgp-util-1.0.1.jar lib/commons-codec-1.3.jar lib/comm 
 ons-collections.jar lib/commons-dbcp-1.2.1.jar lib/commons-httpclient 
 .jar lib/commons-logging.jar lib/commons-pool-1.2.jar lib/dom4j.jar l 
 ib/log4j.jar lib/ojdbc14.jar 

這樣在shell腳本中就不需要指定程序所需要的jar包了,也就不存在環(huán)境變量設(shè)置的惱人問題。比較正規(guī)的也是這么操作的。

這樣在shell中就直接運行jar包就行了:java -jar 主程序.jar -Xmx1024m -Xms1024m -Xmn512m,

#!/bin/bash后追加

source /etc/profile
source ~/.bash_profile

測試下。。

#! /bin/sh
export JAVA_HOME=/usr/java/jdk1.6.0_18
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
for i in lib/*.jar; 
    do CLASSPATH=$i:${CLASSPATH} 
done
export CLASSPATH=.:${CLASSPATH}

java -cp ${CLASSPATH} main方法所在包名.main方法所在的類名

關(guān)于java程序的jar包怎么利用shell腳本運行就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當前題目:java程序的jar包怎么利用shell腳本運行
分享URL:http://weahome.cn/article/pjssji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部