龙空技术网

关于Eclipse 无法安装高版本Tomcat的解决办法

爱音乐的程序员小新人 308

前言:

现在各位老铁们对“apachetomcat无法访问”都比较讲究,兄弟们都需要了解一些“apachetomcat无法访问”的相关内容。那么小编同时在网络上搜集了一些关于“apachetomcat无法访问””的相关文章,希望朋友们能喜欢,姐妹们快快来学习一下吧!

我使用的eclipse mar2当前是不支持tomcat9的,但也不是没有变通的办法来解决这个问题,

以下是我在windows环境下的解决的过程(tomcat版本:apache-tomcat-9.0.0.M6),

不想看过程的也可以直接跳到3直接看解决办法:

1.在bin目录下有个文件:version.bat。

在 version.bat 的末尾处(56行)有行命令 :

call "%EXECUTABLE%" version %CMD_LINE_ARGS%

在中部(38行)你能找到变量EXECUTABLE的赋值命令:

set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"

2.打开catalina.bat 搜索version 在250行左右你会发现下面一行命令:

if ""%1"" == ""version"" goto doVersion

也就是说当参数为 version时 跳转到 doVersion函数

查找doVersion (大概在306行)找到如下信息:

:doVersion

%_EXECJAVA% -classpath "%CATALINA_HOME%\lib\catalina.jar" org.apache.catalina.util.ServerInfo

goto end

然后反编译catalina.jar找到org.apache.catalina.util.ServerInfo就会发现:如下代码:

InputStream is = ServerInfo.class.getResourceAsStream("/org/apache/catalina/util/ServerInfo.properties");

......

props.load(is);

info = props.getProperty("");

built = props.getProperty("server.built");

number = props.getProperty("server.number");

.....

if (info == null)

info = "Apache Tomcat 9.0.x-dev";

if (built == null)

built = "unknown";

if (number == null) {

number = "9.0.x";

}

serverInfo = info;

serverBuilt = built;

serverNumber = number;

3.找到lib下的catalina.jar,使用压缩软件打开。找到org/apache/catalina/util/ServerInfo.properties,然后修改server.info与server.number的值,伪装成tomcat8即可。例如我就是直接把tomcat8.0.14的考过来的:

server.info=Apache Tomcat/8.0.14

server.number=8.0.14.0

运行时日志:

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Server version: Apache Tomcat/8.0.14

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Server built: May 11 2016 21:43:59 UTC

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Server number: 8.0.14.0

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: OS Name: Windows 10

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: OS Version: 10.0

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Architecture: amd64

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Java Home: D:\Java\jdk1.8.0_77\jre

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: JVM Version: 1.8.0_77-b03

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: JVM Vendor: Oracle Corporation

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: CATALINA_BASE: D:\Server\apache-tomcat-9.0.0.M6

五月 24, 2016 12:22:02 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: CATALINA_HOME: D:\Server\apache-tomcat-9.0.0.M6

标签: #apachetomcat无法访问 #eclipse没有tomcat选项