zoukankan      html  css  js  c++  java
  • [原创] 如何用Eclispe调试java -jar xxx.jar 方式执行的jar包

    有时候,我们经常会需要调试 java -jar xxx.jar方式运行的代码,而不是必须在Eclipse中用Debug或者Run的方式运行。比如我们拿到的SourceCode不完整。Java提供了一种调试的机制。
    1. 我们可以使用命令:
    java -agentlib:jdwp=transport=dt_socket,server=y,address=8050,suspend=y -jar xxx.jar
    来打开调试。运行后,它会在8050端口监听调试器的Attach的信号。
    2. 然后,我们在Eclipse中添加一个调试。打开Debug-Debug Configuration-Remote Java Application. 然后New 一个新的。添加上端口。
    然后点击Debug开始即可。它就会命中你所打的断点了。
     
    注意这里填写的端口要跟前面命令里面设置的端口一样。另外,注意看一下Connect旁边的Source标签。里面可以设置在哪个目录查找源文件。也就是说,你甚至可以在没有源文件的情况下用单步跳转的方式跳进某个类去,然后再选择源文件。在android的调试中,这是比较常见的情况。
     
    再看一下之前那个命令的解释。运行 Java 命令,会看到如下的解释:
     
     
    -agentlib:<libname>[=<选项>]
    加载本机代理库 <libname>, 例如 -agentlib:hprof
    另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
     
    再运行java -agentlib:jdwp=help. 可以查看JDWP支持的所有选项,不过这里并不知道 transport除了 dt_socket以外还有什么选项。
     
    Java Debugger JDWP Agent Library
    --------------------------------

    (see http://java.sun.com/products/jpda for more information)

    jdwp usage: java -agentlib:jdwp=[help]|[<option>=<value>, ...]

    Option Name and Value Description Default
    --------------------- ----------- -------
    suspend=y|n wait on startup? y
    transport=<name> transport spec none
    address=<listen/attach address> transport spec ""
    server=y|n listen for debugger? n
    launch=<command line> run debugger on event none
    onthrow=<exception name> debug on throw none
    onuncaught=y|n debug on any uncaught? n
    timeout=<timeout value> for listen/attach in milliseconds n
    mutf8=y|n output modified utf-8 n
    quiet=y|n
     
    运行 java -agentlib:hprof=help, 内容比较多就不贴了。是一个CPU和内存的分析工具。
  • 相关阅读:
    qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’
    安装 yaml-cpp,MP4V2
    安装cmake 和 opencv 4.0.0
    windows系统,boost编译安装
    messageQ 消息队列
    fflush 和 fsync 的区别
    开源一个 PDF 小工具集软件【使用 PDFium 库实现】
    封装 libjpeg 库
    纯 C++ 代码实现的 INI 文件读写类
    C++11 —— 使用 thread 实现线程池
  • 原文地址:https://www.cnblogs.com/zzpbuaa/p/5443269.html
Copyright © 2011-2022 走看看