如何从命令提示符启动 apache tomcat 服务器的调试模式?

Posted

技术标签:

【中文标题】如何从命令提示符启动 apache tomcat 服务器的调试模式?【英文标题】:How to start debug mode from command prompt for apache tomcat server? 【发布时间】:2013-05-17 08:35:05 【问题描述】:

我想为我的应用程序启动调试模式。但我需要从命令提示符启动调试模式。可能吗 ?从tomcat 5.5到tomcat 6的过程会有所不同吗?

【问题讨论】:

catalina.bat jpda 开始 Start tomcat 6 in debug mode?的可能重复 【参考方案1】:

简短的回答是在 JVM 启动时添加以下选项。

JAVA_OPTS=" $JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8080"

【讨论】:

当使用 JAVA_OPTS -Xdebug 时,你不需要用 jpda 启动 catalina。否则你可能会得到这个ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.【参考方案2】:

如果您想通过 Windows 上的 powershell 执行此操作,这对我有用

$env:JPDA_SUSPEND="y"

$env:JPDA_TRANSPORT="dt_socket"

/path/to/tomcat/bin/catalina.bat jpda start

【讨论】:

【参考方案3】: 在窗户上
$ catalina.bat jpda start
在 Linux/Unix 上
$ catalina.sh jpda start

更多信息---->https://cwiki.apache.org/confluence/display/TOMCAT/Developing

【讨论】:

谢谢,这有助于我在startup.sh 中设置调试选项。将tomcat/bin/startup.sh 中的最后一行编辑为exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"。我总是忘记在调试模式下启动,我可以节省 5 分钟的重启时间。【参考方案4】:

在调试模式下运行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

请参阅此article 了解更多信息,这是明确定义的

【讨论】:

【参考方案5】:

这些说明适用于我在 mac os 10.13.3 上使用 jdk1.8.0_152 的 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 并享受远程调试。

【讨论】:

【参考方案6】:

    在您的 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 步完成之前不开始执行,它很有用,如果您想解决应用程序初始化问题,它很有用。

【讨论】:

【参考方案7】:

在 catalina.bat 中设置您希望启动调试器的端口

if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=9001

然后您可以简单地使用

启动调试器
catalina.bat jpda 

现在从 Eclipse 或 IDEA 选择远程调试并通过连接到端口 9001 开始调试。

【讨论】:

【参考方案8】:

对于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

【讨论】:

嗯,是的,虽然在 catalina.bat 中提到了 8000 和 dt_socket 作为默认值,但实际上您必须像上面的帖子中那样设置它们:/ 直截了当的回答,它对我有用+1。拯救了我的一天【参考方案9】:

首先,导航到TOMCAT-HOME/bin 目录。

然后,在命令行中执行以下命令:

catalina.bat jpda start

如果Tomcat服务器在Linux下运行,只需调用catalina.sh程序

catalina.sh jpda start

Tomcat 5.5 和 Tomcat 6 相同

【讨论】:

你能告诉我相当于Tomcat 7.0吗?

以上是关于如何从命令提示符启动 apache tomcat 服务器的调试模式?的主要内容,如果未能解决你的问题,请参考以下文章

tomcat启动问题

如何使用命令提示符将war文件部署到tomcat?

诡异问题:tomcat启动一直卡住,strace跟踪提示apache-tomcat核心文件找不到。

Linux下面启动tomcat时 只给出下面提示 我该怎么启动啊

centos7中启动tomcat提示bash: tomcat8.0.39/bin/startup.sh: 权限不够

问题解决:信息提示SpringBoot启动时提示The APR based Apache Tomcat Native library which allows optimal performanc(代