2012-03-14 284 views
3

我繼承了一個項目,並且(根據其他開發人員的指示)用他的(他使用相同版本)覆蓋了我的Tomcat版本catalina.bat。然後我嘗試重新啓動Tomcat,並得到與commons-logging.jar相關的異常,這是一個Tomcat依賴項。catalina.bat可以更改環境變量嗎?

經過很多挫折之後,我只是下載了一個不同版本的Tomcat,並嘗試運行它開箱即用(沒有配置)......並且我得到了同樣的錯誤!

所以我幾天前問了this question。我的共識是,我的類路徑不知何故變得「髒」,現在我想知道是否我以某種方式盲目複製了設置影響Tomcat引導能力的環境變量的文件(即使在不同的版本中)。

我知道這個問題與我問的其他問題類似,但是不同。儘管我的第一個問題是「這裏有什麼問題」,而且更一般,我現在要求的(儘管有關)更具體,並且是關於catalina.bat以及它與Windows 7環境變量的關係。

感謝您的任何幫助。

編輯:我看到這個問題已經有一個closevote爲「脫離主題」。我反對的觀點如下:SO是一個編程Q &用於提出與代碼和編程有關的特定問題的站點。 catalina.bat是一個腳本,它是代碼,這個問題涉及到我正在使用的腳本中的潛在錯誤/缺陷。

編輯:實測線在catalina.bat其中該錯誤消息是來自(和,同樣地,在這裏Tomcat啓動從死亡)。它是線(從7.0.19的不變版本):

%_EXECJAVA%JAVA_OPTS%%%CATALINA_OPTS%%DEBUG_OPTS%-Djava.endorsed.dirs = 「%JAVA_ENDORSED_DIRS%」 -classpath 「%CLASSPATH%」 - Dcatalina.base = 「%CATALINA_BASE%」 -Dcatalina.home = 「%CATALINA_HOME%」 -Djava.io.tmpdir = 「%CATALINA_TMPDIR%」 %MAINCLASS%%CMD_LINE_ARGS%%ACTION%

我能在腳本中放置echos並獲得以下值:

JAVA_OPTS = -Djava.util.logging.config.file="C:\Program Files\Apache\apache-to 
mcat-7.0.19\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli 
.ClassLoaderLogManager 
CATALINA_OPTS = 
DEBUG_OPTS = 
JAVA_ENDORSED_DIRS = C:\Program Files\Apache\apache-tomcat-7.0.19\endorsed 
CLASSPATH = C:\Program Files\Apache\apache-tomcat-7.0.19\bin\bootstrap.jar 
CATALINA_BASE = C:\Program Files\Apache\apache-tomcat-7.0.19 
CATALINA_HOME = C:\Program Files\Apache\apache-tomcat-7.0.19 
CATALINA_TMPDIR = C:\Program Files\Apache\apache-tomcat-7.0.19\temp 
MAINCLASS is org.apache.catalina.startup.Bootstrap 
CMD_LINE_ARGS = 
ACTION = start 

JAVA_OPTS has my ful l關注logging.propertiesClassLoaderLogManager條目。這是否意味着什麼給任何人?!?

+0

它會設置自己的環境變量。不知道有關錯誤的任何信息,您會發現無法提供幫助。 – 2012-03-14 12:11:40

+2

檢查在該目錄中是否存在與Java選項混淆的「setenv.bat」。 – 2012-03-14 12:16:44

+0

偉大的建議@horse但在該目錄中 – IAmYourFaja 2012-03-14 12:57:10

回答

2

您可以設置任何批處理文件中的環境變量,包括catalina.bat中。但是這些更改僅保留在當前運行環境中,並不會影響其他所有運行環境。

對於CLASSPATH,查看相應的批處理文件,如果你看到這樣set CLASSPATH=它給你的類路徑設定信息。

+0

在'catalina.bat'我看到:'設置CLASSPATH ='但多數民衆贊成它... – IAmYourFaja 2012-03-14 12:52:16

+0

如果你只有'設置CLASSPATH ='並在該行沒有別的,就意味着你的catalina.bat中確實會破壞你的整個CLASSPATH 。嘗試對它進行評論('rem設置CLASSPATH =')並檢查它是否解決了問題。 – belgther 2012-03-14 13:50:28

+0

感謝belgther--請參閱我的第二次編輯,其中包含EXECJAVA命令的回顯值。 – IAmYourFaja 2012-03-14 18:50:30

1

回過頭看看你的其他問題的答案,似乎並不認爲類路徑已經變得「髒」了。但是,Tomcat設置本身由於混合了幾種不同的Tomcat版本而變得骯髒。

請注意,默認情況下,Tomcat並不使用您的CLASSPATH中的值,這正是爲了避免像您所概述的問題。你應該檢查你的同事給你的文件,看看他改變了什麼(考慮到你可以在BAT文件中編寫幾乎任何東西,根據你提供的描述幾乎不可能確定確切的問題)。

祝你好運。

+0

感謝您的答覆知覺,但我要說的是,我遇到了同樣的問題,甚至** **後我下載不同版本的Tomcat的運行'startup.bat'開箱(零種變化)的。 Env vars是我能想到的作爲這裏罪魁禍首的唯一東西。我想我的同事給我的'catalina.bat'弄亂了我的env vars,現在*沒有任何版本的Tomcat會工作。我只是問這是否是一個瘋狂的概念。儘管如此,再次感謝您的反饋! – IAmYourFaja 2012-03-14 12:51:15

+0

啊,我以爲你下載了一個更新版本的Tomcat,它工作,我的錯誤。但是,你有沒有檢查你的環境變量?檢查所有'CATALINA',特別是檢查是否設置了'JAVA_OPTS'。完全的第一件事情,NSET類路徑 - – Perception 2012-03-14 14:16:08

+0

我沒有看到JAVA_OPTS,只是JAVA_HOME – IAmYourFaja 2012-03-14 14:28:11