2011-05-11 184 views
40

是否有OS命令來查找Tomcat6正在使用的Java版本? 我需要使用Perl(包括system())命令。我如何找到Tomcat6正在使用的Java版本?

我使用Linux。 Ubuntu和CentOS

有沒有類似的東西?

 tomcat6 version 
+1

您是否想從Tomcat內部(即servlet或JSP或實用程序類)或從外部找到它? – 2011-05-11 00:15:02

+0

@PaŭloEbermann看到我的新編輯。 – bitbucket 2011-05-13 23:59:34

+0

我想知道在WINDOWS中如何做到這一點 – Dennis 2013-10-22 02:20:46

回答

34

首先,您首先需要了解Tomcat是一個Java應用程序。 因此,要查看Tomcat正在使用哪個Java版本,只需簡單地找到啓動Tomcat的腳本文件,通常爲catalina.sh。

在這個文件中,你會得到類似如下:

catalina.sh:# JAVA_HOME  Must point at your Java Development Kit installation. 
catalina.sh:#     Defaults to JAVA_HOME if empty. 
catalina.sh: [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 
catalina.sh: JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"` 
catalina.sh: echo "Using JAVA_HOME:  $JAVA_HOME" 

默認情況下,JAVA_HOME應該是空的,這意味着它會使用Java的默認版本,或者你可以測試:回聲$ JAVA_HOME

然後使用「java -version」來查看你默認java是哪個版本。

反之亦然,通過設置此屬性:JAVA_HOME,可以配置啓動Tomcat時要使用哪個Java版本。

6

如果用tomcat沒有啓動呢,你可以使用命令\bin\cataline version檢查,當您使用bin\startup

事實上,\bin\cataline version只需調用主類的org.apache.catalina.util.ServerInfo啓動tomcat JVM將tomcat的使用,它位於\lib\catalina.jar的內部。該org.apache.catalina.util.ServerInfo通過以下命令獲取JVM版本和JVM供應商:

System.out.println("JVM Version: " +System.getProperty("java.runtime.version")); 
System.out.println("JVM Vendor: " +System.getProperty("java.vm.vendor")); 

所以,如果Tomcat正在運行,你可以創建調用org.apache.catalina.util.ServerInfo或者只是簡單地調用上述System.getProperty()得到JVM版本JSP頁面和供應商。將這個JSP部署到正在運行的tomcat實例並瀏覽到它以查看結果。

或者,您應該知道哪個端口是正在運行的tomcat實例使用。因此,您可以使用OS命令來查找哪個進程在偵聽此端口。例如,在窗口中,您可以使用命令netstat -aon找出正在偵聽特定端口的進程的進程ID。然後轉到窗口任務管理器到check the full file path of this process ID belongs to.。然後可以從該文件路徑確定Java版本。

93

/usr/local/tomcat6/bin/catalina.sh版本

+17

+1。這應該被選爲**正確的答案** – 2013-09-05 10:16:18

+0

+1這也打印JRE_HOME。 – 2014-04-29 07:38:15

+0

這將打印JRE_HOME。但是,如果我執行'echo $ JRE_HOME',它不會打印任何內容。那麼tomcat從何處獲取JRE_HOME? – mahacoder 2016-03-17 06:09:44

25

一旦啓動tomcat的只是在終端提示符運行以下命令:

ps -ef | grep tomcat

這將顯示進程的詳細信息並指出哪個JVM(按文件夾位置)運行的是tomcat。

+4

k如何從中找到tomcat版本? – 2013-02-20 13:42:12

+1

非常有用和準確的方式來找到它。謝謝 – 2015-05-24 04:43:05

+0

這是準確的,ps -ef | grep tomcat,在輸出中顯示運行時java的路徑。使用該java路徑,調用/ xx/yy/java -version。與tomcat啓動版本相比,catalina.sh版本可以顯示不同的jre_version。 – signonsridhar 2015-08-21 05:38:42

3

或者你可以使用Probe應用程序,只需看看它的系統信息頁面。比編寫代碼容易得多,一旦你開始使用它,你將永遠不會回到Tomcat管理器。

+0

+1爲探針:) – gkiko 2014-04-02 11:04:39

0

安裝tomcat後,可以通過在「搜索程序和文件」中搜索來選擇「配置tomcat」。點擊「配置Tomcat」後,您應該給予管理員權限並打開窗口。然後點擊「java」選項卡。在那裏你可以看到JVM和JAVA類路徑。

+1

這不解決用戶的問題,它似乎是面向Windows系統。 – bitoiu 2014-04-02 16:30:39

3

您可以使用Tomcat管理器應用程序找出Tomcat正在使用的JRE和OS版本。鑑於用戶tomcat與密碼passwordmanager作用:

的Tomcat 6:

curl http://tomcat:[email protected]:8080/manager/serverinfo 

Tomcat的7/8:

curl http://tomcat:[email protected]:8080/manager/text/serverinfo 
-1

對於Windows,啓動命令提示符和路由路徑(通常是bin),你有你的tomcat啓動腳本。

C:\opt\isv\tomcat-7.0\grid\bin>version 
Using CATALINA_BASE: "C:\opt\isv\tomcat-7.0\grid" 
Using CATALINA_HOME: "C:\opt\isv\tomcat-7.0\grid" 
Using CATALINA_TMPDIR: "C:\opt\isv\tomcat-7.0\grid\temp" 
Using JRE_HOME:  "C:\opt\isv\devtools\jdk1.8.0_45" 
Using CLASSPATH:  "C:\opt\isv\tomcat-7.0\grid\bin\bootstrap.jar;C:\opt\isv\tomcat-7.0\grid\bin\tomcat-juli.jar" 
Server version: Apache Tomcat/7.0.55 
Server built: Jul 18 2014 05:34:04 
Server number: 7.0.55.0 
OS Name:  Windows 7 
OS Version:  6.1 
Architecture: x86 
JVM Version: 1.8.0_45-b15 
JVM Vendor:  Oracle Corporation 
C:\opt\isv\tomcat-7.0\grid\bin> 
+0

他明確表示他正在使用的操作系統是:Linux。 Ubuntu和CentOS。你的答案與他們沒有關係。 – 2017-08-09 15:26:48

相關問題