原文地址:https://www.cnblogs.com/zzpbuaa/p/5443269.html

有时候,我们经常会需要调试 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和内存的分析工具。

【转】如何用Eclispe调试java -jar xxx.jar 方式执行的jar包的更多相关文章

  1. [原创] 如何用Eclispe调试java -jar xxx.jar 方式执行的jar包

    有时候,我们经常会需要调试 java -jar xxx.jar方式运行的代码,而不是必须在Eclipse中用Debug或者Run的方式运行.比如我们拿到的SourceCode不完整.Java提供了一种 ...

  2. java中如何生成可执行的jar文件

    java中如何生成可执行的jar文件 最简单的方法就是: jar -cfe Card.jar CardLayoutDemo CardLayoutDemo$1.class CardLayoutDemo$ ...

  3. 如何用jar命令生成可执行的jar文件

    如果你已经把zh.java文件生成了zh.class文件 如果zh.class的路径是bin/com/zhang/zh.class 则在bin目录下放一个manifest.mf文件,文件内容如下: M ...

  4. linux怎么执行jar文件 怎么打可执行的jar包

    Linux下执行jar文件方法:命令行下进入文件目录,执行java -jar file.jar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java -jar /file路径/file.ja ...

  5. exe4j将可执行的jar封装成exe文件

    1,将java项目打包成可执行的jar:https://www.cnblogs.com/3b2414/p/9355292.html, 2,下载好exe4j工具, 3,首先注册,如果你不注册,打包好的软 ...

  6. 使用idea 调试java -jar xxx.jar方式启动

    今日思语:希望是什么?希望就是 你还在挣扎中... idea是一个功能强大的java开发工具,可以很方便的帮助开发人员进行开发工作. 1.有时我们通过使用java -jar xxx.jar方式启动可执 ...

  7. Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.java

    Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...

  8. Linux环境下执行java -jar xxx.jar命令如何让springboot项目在后台运行

    段落引用> 由于springboot内置了tomcat容器,我们通常会把项目打成jar或者war后直接使用java -jar xxx.jar命令去运行程序,但是当前ssh窗口被锁定或者按下ctr ...

  9. Java:Linux上java -jar xxx.jar&java -cp 区别

    java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符:window上分号“;”.Lin ...

随机推荐

  1. 公司内网接口ip城市查询分析

    require 'rubygems' require 'json' print ARGV print "fist is :",ARGV[0] logfile="#{ARG ...

  2. [ZZ] MATLAB曲线拟合

    MATLAB曲线拟合 http://blog.sina.com.cn/s/blog_5db2286f0100enlo.html MATLAB软件提供了基本的曲线拟合函数的命令: 多项式函数拟合:  a ...

  3. Win32-Application的窗口和对话框

    Win32 Application,没有基于MFC的类库,而是直接调用C++接口来编程. 一.弹出消息窗口 (1)最简单的,在当前窗口中弹出新窗口.新窗口只有“YES”按钮. int APIENTRY ...

  4. APS技术中的多目标规划问题

    在进行APS(高级计划与排程)系统开发时,绝大多数情况下是需要考虑多目标的.但面对多目标问题进行规划求解时,我们往往极容易因处理方法不当,而影响输出结果,令结果与用户期望产生较大差别.事实上很多时候用 ...

  5. SSO单点登录三种情况的实现方式详解

    单点登录(SSO——Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子系统——百度经验.百度知道.百度文库等 ...

  6. laravel-admin挖坑之旅

    1.git-bash下使用命令php artisan admin:make UserController --model=App\User会报错Model does not exists 要加多一个“ ...

  7. Visual studio 调试发布到IIS站点方式一

    在项目开发过程中,前端项目可能调用多个API接口,并且这些API接口是在同一个资源解决方案下的,一个资源解决方案下只能设置一个启动项目.那么问题来了,某个API业务需求变更或有BUG,解决后是需要调试 ...

  8. 工作中拓展的加密解密传输方式. DES对称加密传输.

    系统间通过xml传输, 不能采用明文, 就加密传输. 秘钥(真正有效的是前8位)存储于配置中. public static string EncryptStr(this string content, ...

  9. 在做MVC和WebApi写返回数据时,可以这样定义

    public class Messages { /// <summary> /// 返回包含是否成功以及消息字符结果 /// </summary> /// <param ...

  10. How to compile tensorflow on CentOS

    Tensorflow is a very effective machine learning library implemented by C++, we can use tensorflow wi ...