我想为我的应用程序启动调试模式。但我需要从命令提示符启动调试模式。可能吗 ?在tomcat 5.5和tomcat 6之间,程序会有所不同吗?
9 回答
$ catalina.bat jpda start
在 Linux/Unix 上
$ catalina.sh jpda start
更多信息---->
https://cwiki.apache.org/confluence/display/TOMCAT/Developing
对于 windows 首先设置变量:
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
以调试模式启动服务器:
%TOMCAT_HOME%/bin/catalina.bat jpda start
对于 unix 第一个导出变量:
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
并以调试模式启动服务器:
%TOMCAT_HOME%/bin/catalina.sh jpda start
在您的 IDE 中,创建一个远程调试配置,将其配置为默认的 JPDA Tomcat 端口,即端口 8000。
从命令行:
Linux:
cd apache-tomcat/bin export JPDA_SUSPEND=y ./catalina.sh jpda run
视窗:
cd apache-tomcat\bin set JPDA_SUSPEND=y catalina.bat jpda run
从 IDE 执行远程调试配置,Tomcat 将开始运行,您现在可以在 IDE 中设置断点。
笔记:
该JPDA_SUSPEND=y
行是可选的,如果您希望 Apache Tomcat 在第 3 步完成之前不开始执行,这很有用,如果您想解决应用程序初始化问题,这很有用。
一个简短的回答是在 JVM 启动时添加以下选项。
JAVA_OPTS=" $JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8080"
首先,导航到TOMCAT-HOME/bin
目录。
然后,在命令行中执行以下命令:
catalina.bat jpda start
如果 Tomcat 服务器在 Linux 下运行,只需调用catalina.sh
程序
catalina.sh jpda start
Tomcat 5.5 和 Tomcat 6 也是如此
这些说明使用 jdk1.8.0_152 在 mac os 10.13.3 上的 apache-tomcat-8.5.20 上对我有用:
$ cd /path/to/apache-tomcat-8.5.20/bin
$ export JPDA_ADDRESS="localhost:12321"
$ ./catalina.sh jpda run
现在从 IntelliJ/Eclipse 连接到端口 12321 并享受远程调试。
调试模式下运行tomcat有两种方式
使用 jdpa 运行
使用 JAVA_OPTS
首先设置环境。然后使用以下命令启动服务器。
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
%TOMCAT_HOME%/bin/catalina.sh jpda start
sudo catalina.sh jpda start
请参阅本文以获取更多信息,这是明确定义的
如果您想通过 Windows 上的 powershell 执行此操作,这对我有用
$env:JPDA_SUSPEND="y"
$env:JPDA_TRANSPORT="dt_socket"
/path/to/tomcat/bin/catalina.bat jpda start
在 catalina.bat 中设置您希望启动调试器的端口
if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=9001
然后你可以简单地启动调试器
catalina.bat jpda
现在从 Eclipse 或 IDEA 中选择远程调试并通过连接到端口 9001 开始调试。