赞
踩
要尽量保证本地使用的代码要与war/jar包最好差异要小一点,否则无法进入断点
设置主机地址和调试端口
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089 demo.jar
如果是windows 设置tomcat bin目录下的catalina.bat
rem Configure JAVA 9 specific start-up parameters
set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.lang=ALL-UNNAMED"
set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.io=ALL-UNNAMED"
set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
rem 添加
set CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089"
如果是linux 设置 tomcat bin目录下的catalina.sh,设置如下
# Add the JAVA 9 specific start-up parameters required by Tomcat
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.io=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089" #添加
export JDK_JAVA_OPTIONS
export CATALINA_PID=/www/server/tomcatHSOA/apache-tomcat-9.0.21/logss/tomcat.pid #添加
说明 CATALINA_PID 必须添加 因为如果不添加会导致开启的socket端口在项目关闭时无法正常关闭,还要给tomcat.pid配置权限否则也无法自动关闭,windows下的配置也是类似的
这些参数是用于配置Java虚拟机(JVM)以支持远程调试的。下面是每个参数的解释:
-agentlib:jdwp:这是启用Java调试代理库的选项。jdwp代表Java Debug Wire Protocol,它是Java调试器与应用程序之间进行通信的协议。
transport=dt_socket:这是指定调试器和被调试应用程序之间使用套接字进行通信的传输方式。dt_socket表示使用套接字进行传输。
server=y:这是指定JVM作为调试服务器运行。这意味着JVM将等待调试器的连接请求。
suspend=n:这是指定JVM在启动时是否暂停等待调试器的连接请求。n表示不暂停,JVM将继续正常执行。
address=8089:这是指定调试器连接的地址和端口。在这个例子中,调试器将连接到本地的8089端口。通过使用这些参数,您可以在JVM上启用远程调试,并配置调试器连接的方式和端口。这样,您就可以使用IntelliJ IDEA或其他支持远程调试的工具连接到JVM,并进行远程调试操作。
不要在生产环境使用,调试完要记得关掉添加的配置 因为不安全 或者配置用户名密码:如下但是我没有测试过
要设置远程调试的用户名和密码,您可以使用Java的JPDA_ADDRESS环境变量来实现。请按照以下步骤进行操作:
打开Tomcat的启动脚本文件(通常是catalina.sh或catalina.bat)。
在文件的顶部,找到设置Java选项的地方。
在设置Java选项的地方,添加以下行:
export JPDA_ADDRESS=8089
export JPDA_TRANSPORT=dt_socket
export JPDA_SUSPEND=n
export JPDA_OPTS="-Djava.security.debug=all -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaas.config"
创建一个名为jaas.config的文件,并将以下内容添加到文件中:
tomcat {
org.apache.catalina.realm.JAASMemoryLoginModule required
debug=true
user=test
password=test;
};
将user和password的值设置为您希望使用的实际用户名和密码。
保存文件并重新启动Tomcat。
现在,您可以使用IntelliJ IDEA或其他调试工具连接到Tomcat的8089端口,并提供正确的用户名和密码进行身份验证。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。