Windows下Payara 4.1.2.181 Debug模式启动失败求助
解决Payara 4.1.2.181在JDK8下Debug模式启动失败的问题
先帮你拆解下问题里的关键信息:
- 你用的是JDK 8(
jdk1.8.0_172),而Payara 4.1.2.181默认配置里还保留了JDK 7及以前的MaxPermSize参数,这会触发警告,但这个警告本身不会导致启动失败。 - 真正的罪魁祸首是JDWP传输错误:
JDWP传输错误202:连接被拒绝,JDWP Transport dt_socket初始化失败,这说明调试端口被占用或者配置有问题,导致JVM无法开启调试监听,最终退出(退出码2)。
下面是具体的排查和解决步骤:
1. 检查默认调试端口是否被占用
Payara默认的调试端口是9009,你需要确认这个端口有没有被其他进程占用:
- Windows系统:打开命令提示符,执行:
如果有输出,记下PID,打开任务管理器结束对应的进程。netstat -ano | findstr :9009 - Linux/macOS系统:打开终端,执行:
用lsof -i :9009kill <PID>杀掉占用端口的进程。
2. 修改Payara的调试端口(如果端口被占用且无法释放)
如果不想杀掉占用端口的进程,可以修改Payara的调试监听端口:
- 找到Payara安装目录下的domain配置文件:
{Payara安装路径}/glassfish/domains/domain1/config/domain.xml - 搜索
<java-config>节点下的debug-options,找到类似这样的配置:<debug-options>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9009</debug-options> - 把
address=9009改成其他未被占用的端口,比如address=9010 - 保存文件后,重新执行
asadmin start-domain --debug=true
3. 移除过时的MaxPermSize参数(可选,但建议清理)
JDK 8已经移除了PermGen,改用Metaspace,所以MaxPermSize=192m参数完全没用,还会触发警告。你可以删掉它:
- 同样在
domain.xml里搜索<jvm-options>,找到这一行:<jvm-options>-XX:MaxPermSize=192m</jvm-options> - 删除这一行,保存文件即可。
做完以上步骤后,再尝试启动debug模式,应该就能正常启动了。如果还是有问题,可以检查下Payara的domain1/logs/server.log有没有新增的错误信息,不过根据你描述的情况,端口问题应该是核心原因。
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

