Answers:
您能检查一下是否可行吗?
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
catalina.sh jpda start
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
catalina.bat jpda start
catalina.sh jpda start
应该足够了。catalina.sh具有几个JPDA_*
参数,可用于例如更改端口,请参阅该文件以获取文档。
我花了一些时间来获取正确的信息。
因此,这里是逐步的详细信息。
环境:Windows 7
TomCat版本:7.0
IDE:Eclipse
要添加的启用tomcat远程调试的配置是
-Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
我不建议在非Windows环境下进行上述配置。要添加以上配置,请双击tomcat服务器,该服务器将在服务器视图中可用。找到以下屏幕截图。
现在,将以上运行时环境配置添加到tomcat。对于此检查下面的截图。
现在进入“编辑启动配置属性”中的“ Arugments”选项卡,如下面的屏幕快照所示。
GoTo VM arguments部分添加这些行。
-Xdebug
-agentlib:jdwp = transport = dt_socket,address = 8000,server = y,suspend = n
现在可以在Eclipse工具栏上找到调试按钮。
在“调试配置”中,找到“远程Java应用程序”,然后双击它。
在名称字段中输入您想要的任何名称。
使用浏览按钮从项目字段中选择要执行远程调试的项目。
主机名不过是主机地址。在这里我在本地工作,所以它是“ localhost”。
最后,“端口”列的值应为8000。除了“名称”和“项目”文本字段外,如果没有使您具有与上述相同的值,则主机和端口将由Eclipse自身填充。检查屏幕快照以获取信息。
现在,右键单击服务器控制台中的TomcatServer,然后从上下文菜单中选择“添加和删除”。在此对话框中,您可以将项目添加到服务器。
现在运行Tomcat服务器。
现在,从调试工具运行TomCatDebugConfiguration。
最后打开内部或外部浏览器并运行您的项目。如果执行控制已到达断点,则Eclipse将提示您进行调试透视图。
在找到catalina.bat
或的tomcat bin目录.sh
(又名{CATALINA_BASE} / bin)中,进行编辑(如果不存在则创建):
setenv.bat/.sh
添加以下行:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
这就是您需要做的,而无需编辑catalina.bat
(或.sh
)文件。
见注释catalina.bat
或catalina.sh
。
您可能必须针对您的特定环境/情况调整语法。例如,如果您已经定义了CATALINA_OPTS,则可以在Windows环境中执行以下操作:
set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,server=y,suspend=n
要从Eclipse调试:
运行->调试配置...->远程Java应用程序->新建
并指定名称,要调试的项目以及上面指定的tomcat主机和调试端口。
setenv.bat
在bin
目录中放线一样set JPDA_OPTS= -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
,使用startup.bat
启动Tomcat
在catalina.bat
文件中,请修改以下内容。
第1步: CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
第2步: JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
步骤3:从命令提示符运行Tomcat,如下所示: catalina.sh jpda start
步骤4:然后在eclipse中创建调试配置
project name
。Standard(Socket Attach)
localhost
8000
(或任何端口号,但在其他地方也应该相同)。上面的许多答案都是正确的,但请记住,默认情况下,调试器仅在localhost上侦听。如果要调试远程服务器,则需要指定要侦听的IP地址,例如
JPDA_OPTS =“-agentlib:jdwp = transport = dt_socket,address = 10.1.1.33:8000,server = y,suspend = n”
catalina.sh jpda开始
请注意,现在的地址是10.1.1.33:8000
当然,您还可以通过运行以下命令检查实际使用的IP
netstat -an
在Windows和Linux上都可以,并使用find
(Windows)或grep
(Linux)过滤端口。
让我分享使用eclipse(Windows)在tomcat7中启用远程调试模式的简单方法。
步骤1:打开bin / startup.bat文件
步骤2:添加以下行以使用JDPA选项进行调试(它应以文件的开始行)
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
步骤3:在同一个文件中..转到文件末尾,修改此行-
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
instead of line
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
步骤4:然后只需运行bin> startup.bat(这样,您的tomcat服务器便以端口8000在远程模式下运行)。
步骤5:之后,通过Eclipse IDE与远程客户端连接源项目。
步骤6:在Eclipse IDE中转到“调试配置”
step7:单击“远程Java应用程序”,然后单击“新建”
步骤8。在“连接”选项卡中设置参数值
project= your source project
connection Type: standard (socket attached)
host: localhost
port:8000
步骤9:点击“应用并调试”。
因此,最终您的eclipse远程客户端与正在运行的tomcat服务器连接(调试模式)。
希望这种方法对您有所帮助。
问候..
修改catalina.bat以添加
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
和
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
可选:在运行startup.bat时,默认添加以下行以运行调试模式
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
Eclipse或STS选择调试配置,右键单击->新建
connection type -> Standard socket Attach
Port -> 8000 (as given in the CATALINA_OPTS)
Host -> localhost or IP address
在tomcat 7中,catalina.sh具有以下代码:
if [ "$1" = "jpda" ] ; then
if [ -z "$JPDA_TRANSPORT" ]; then
JPDA_TRANSPORT="dt_socket"
fi
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="8000"
fi
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="n"
fi
if [ -z "$JPDA_OPTS" ]; then
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
fi
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
shift
fi
ii暗示您可以使用以下方法设置JPDA:
export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=8000
export JPDA_SUSPEND=n
或搭配:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
最后使用:
catalina.sh jpda start
问候
用CATALINA_OPTS和JPDA_OPTS修改startup.bat对我不起作用,但是将它们添加到catalina.bat可以
CATALINA_OPTS =“-Xdebug -Xrunjdwp:transport = dt_socket,address = 8000,server = y,suspend = n”
JPDA_OPTS =“-agentlib:jdwp = transport = dt_socket,address = 8000,server = y,suspend = n”
将呼叫“%EXECUTABLE%”更改为%CMD_LINE_ARGS%
呼叫“%EXECUTABLE%” jpda开始%CMD_LINE_ARGS%
然后在Eclipse中的调试配置中配置远程Java应用程序。
首先,如果使用文本编辑器打开catalina.bat,则会看到:“请勿在此脚本中设置变量.....”因此,请不要在该脚本中更改它,而可以执行以下步骤:
然后在该bat文件中设置2个变量,例如:
设置CATALINA_OPTS =“-Xdebug -Xrunjdwp:transport = dt_socket,address = 8000,server = y,suspend = n”
设置JPDA_OPTS =“-agentlib:jdwp = transport = dt_socket,address = 8000,server = y,suspend = n”
最后在cmd上运行该命令:“ catalina.bat jpda start”
在IDE中,创建远程调试配置,并将主机设置为相关的服务器IP,并将端口设置为8000。
对于apache-tomcat-8.5.28版本,只需执行此操作,
catalina.bat jpda start
由于已经在catalina.bat中为我们配置了默认设置,
如果不是“%JPDA_OPTS%” ==“”则将getJpdaOpts设置为JPDA_OPTS = -agentlib:jdwp = transport =%JPDA_TRANSPORT%,address =%JPDA_ADDRESS%,server = y,suspend =%JPDA_SUSPEND%
因此,不需要任何其他配置。并且当您执行命令catalina.bat jpda start时,您可以看到调试端口8000已打开。
对于我在Java 8和Tomcat 9中遇到的问题,请参见此答案: Java远程调试(JPDA)在Tomcat 9中不适用于我
这类似于@DAB的警告,他的解决方案可能更安全。