我在Windows 7-64位机器上安装了tomcat 7.0.68。
如果我运行catalina.bat jpda start,它只是打开和关闭,不会生成任何日志。
如果我运行catalina.bat jpda运行,我得到以下错误
Using CATALINA_BASE: "C:\apache-tomcat-7.0.68"
Using CATALINA_HOME: "C:\apache-tomcat-7.0.68"
Using CATALINA_TMPDIR: "C:\apache-tomcat-7.0.68\temp"
Using JRE_HOME: "C:\Java\jre7"
Using CLASSPATH: "C:\apache-tomcat-7.0.68\bin\bootstrap.jar;C:\apache-
tomcat-7.0.68\bin\tomcat-juli.jar"
Picked up _JAVA_OPTIONS: -Xmx512M
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports
initialized [../../../src/share/back/debugInit.c:750]
FATAL ERROR in native method: JDWP No transports initialized,
jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
其他一些应用程序正在使用tomcat尝试打开的端口。默认情况下,它使用8080,8443,8005,8009等grep为已经使用的tomcat特定端口使用以下命令。
netstat -an
识别已经获取冲突端口的进程并终止/释放,以便tomcat可以使用它。还有一件事,tomcat调试模式试图使用额外的端口进行调试(即8000)。查看该端口是否已被其他进程使用
我更改了端口,将JPDA_ADDRESS设置为1043,它对我有用。
这个问题似乎是重复的。而且,我认为使用CATALINA_OPTS更简单,更合适。
上面的答案如下所述。
查看catalina.sh,可以看到CATALINA_OPTS仅由“start”和“start-security”命令使用,而“stop”命令也使用JAVA_OPTS(至少在openSUSE 12.1上使用Tomcat 6.0.33)。
尝试使用单行命令终止进程 -
pkill -9 -f tomcat
在我的情况下我有几个tomcat运行,在两个tomcat我给了相同的jpda地址,所以其中一个tomcat无法启动因为地址已经在使用。