Tomcat未在调试模式下启动。记录下面的日志。
C:\ApacheSoft\apache-tomcat-7.0.67\bin>catalina.bat jpda start
Using CATALINA_BASE: "C:\ApacheSoft\apache-tomcat-7.0.67"
Using CATALINA_HOME: "C:\ApacheSoft\apache-tomcat-7.0.67"
Using CATALINA_TMPDIR: "C:\ApacheSoft\apache-tomcat-7.0.67\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_79"
Using CLASSPATH: "C:\ApacheSoft\apache-tomcat-7.0.67\bin\bootstrap.jar;C:\ApacheSoft\apache-tomcat-7.0.67\bin\tomcat-juli.jar"
=transport=dt_socket was unexpected at this time.
答案 0 :(得分:19)
让我猜一下,您在blog.trifork.com上阅读了一个名为“如何在智能IDEA中从远程调试应用程序运行”的链接。
说明在setenv.bat中为Windows执行此操作:
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
是的,那不行。 catalina.bat添加了自己的引号,因此最终尝试这样做:
if not ""-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"" == "" goto gotJpdaOpts
更好的计划是这样做:
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n
我知道这是差不多一年前的事了,但我遇到了这个问题,最终不得不从Tomcat批处理文件中删除“@echo off”并自行追查。希望这会被投票,这样可以拯救别人这种悲痛。
答案 1 :(得分:1)
在远程调试模式下启动tomcat期间,还有另一种方法可以配置两种不同的方式在jvm中启用JPDA。
在Windows中,有几种方法可以在jvm中启用JPDA。 1.方法是:
打开 startup.bat。
添加以下行
set JPDA_ADDRESS=8001
set JPDA_TRANSPORT=dt_socket
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
2.第二种方式是:
在CATALINA_HOME / bin目录下创建 setenv.bat 文件。
并添加以下行:
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n
当然,他们还有其他方式。 我和你有同样的问题,但后来我发现我用这两种方式配置,都会导致无法打开JPDA端口,没有任何错误细节。 然后我只选择方法1,端口成功打开。 希望这可以帮助其他新手。
答案 2 :(得分:0)
C:\Program Files\Java\jdk1.7.0_79
中的空格字符会导致问题。
用短名称替换它可以解决问题。
执行命令dir c:\PROGRA~1\Java\jdk1.7.0_79
并检查文件列表以验证PROGRA~1
是否正确。如果没有,请尝试PROGRA~2
,依此类推......
然后更改环境变量JAVA_HOME
或JRE_HOME
以重试。