在远程调试模式下启动tomcat时出错

时间:2016-02-09 15:51:27

标签: java tomcat remote-debugging catalina

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.

3 个答案:

答案 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_HOMEJRE_HOME以重试。