2011-05-11 176 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

相关问题