当前位置:  开发笔记 > 编程语言 > 正文

设置哪些Java命令行选项以允许远程调试JVM?

如何解决《设置哪些Java命令行选项以允许远程调试JVM?》经验,为你挑选了4个好方法。

我知道有一些JAVA_OPTS设置为远程调试Java程序.

它们是什么,它们是什么意思?



1> paulgreg..:

在Java 5.0之前,使用-Xdebug-Xrunjdwp参数.这些选项仍然适用于更高版本,但它将以解释模式而不是JIT运行,这将更慢.

从Java 5.0开始,最好使用-agentlib:jdwp单个选项:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044

选项-Xrunjdwpagentlib:jdwp参数是:

transport=dt_socket :表示用于连接JVM的方式(套接字是一个不错的选择,它可以用来调试远程计算机)

address=8000 :暴露TCP/IP端口,从调试器连接,

suspend=y :if'y',告诉JVM等待调试器连接开始执行,否则(如果'n'),立即开始执行.


你是完全正确的..我尝试** - Xdebug**和** - Xrunjdwp**但它没有用.当我尝试** - Xrunjdwp**或**agentlib:jdwp**它正在工作.(在Java 7上)
我觉得你错了.Netbeans在调试Maven项目时使用`-Xdebug -Xrunjdwp`,它们就像JITed一样运行.

2> Hans Sjunnes..:

我有这篇文章的书签,为Java 5及以下版本设置.

基本上运行它:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044

对于Java 5及更高版本,请运行它:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044


值得一提的是,您可能希望将地址配置为"*:1044",以便从任何计算机启用远程调试
HerrDerb是对的..因为Java 9"address = 1044"并不总是在所有接口上监听."address =*:1044"使Java 9+表现得像Java 8 ......

3> 小智..:

由于Java 9.0 JDWP默认仅支持本地连接. http://www.oracle.com/technetwork/java/javase/9​​-notes-3745703.html#JDK-8041435

对于远程调试,应该使用*:in地址运行程序:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000



4> thebiggestle..:

对于java 1.5或更高版本:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 

对于java 1.4:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 

对于java 1.3:

java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 

这是一个简单程序的输出:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled
Listening for transport dt_socket at address: 1044
Hello whirled

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有