Arthas |
您所在的位置:网站首页 › mc命令app下载 › Arthas |
tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 推荐:体系化学习Java(Java面试专题) 开头: 我们先说下生产使用频率较高的有哪些:dump、jad、mc、retransform 文章目录 Class/Classloader相关命令使用classloaderdumpjadmcredefineretransformscsm Class/Classloader相关命令使用 classloader查看 classloader 的继承树,urls,类加载信息,将 JVM 中所有的 classloader 的信息统计出来,并可以展示继承树,urls 等。这个命令用的不多,了解一下。 命令: classloader 按类加载类型查看统计信息 classloader -l 按类加载实例进行统计 classloader -t 按类加载实例进行统计 classloader -c [hashcode] ClassLoader 的 hashcode classloader -c [hashcode] --load [类名] 使用 ClassLoader 去加载类 classloader -c [hashcode] -r [资源名] 用 ClassLoader 去查找 resource dumpdump 已加载类的 bytecode 到特定目录,这个命令比较常用,主要用来下载/打印出来 class 文件。 常用命令: dump -d [目录] [类的全限定名] 使用截图: jad反编译指定已加载类的源码,这个命令也比较常用,主要用来反编译 class 文件,确定我们写的代码是不是编译了,是否生效。 命令: jad -c [hashcode] jad [类的全限定名] --lineNumber false 反编译类,不限行号, --lineNumber false 可选的。 mcMemory Compiler/内存编译器,编译.java文件生成.class。这个命令也比较常用,主要用来线上修改代码后,编译发布。 我们用 jad 拿到源码,然后保存修改它,在用 mc 编译。 命令: mc -d [目录] -c [hashcode] [目录/xxx.java] 也可以参考:mc -d /root/test --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader /root/test/Test.java 有时候没指定 classloader,也会报错,如下: 使用截图如下: redefine加载外部的.class文件,redefine jvm 已加载的类,不过官方已经推荐使用 retransform 了。 这个了解就好了。 命令: redefine -c [hashcode] [class文件] redefine --classLoaderClass [classLoader] [class文件] retransform加载外部的.class文件,retransform jvm 已加载的类。官方推荐使用的方式。 命令: retransform [class文件] 将 class 加载到 jvm retransform -l 查看 retransform entry retransform -d [id] 删除指定 retransform entry retransform --deleteAll 删除指定 retransform entry sc这个是 Search-Class 的缩写, 查看 JVM 已加载的类信息。 命令: sc -d [类的全限定名] sc -d -f [类的全限定名] 打印出类的 Field 信息 sc -cs [返回值] [类名包含] 指定 class 的 ClassLoader#toString() 返回值 sm查看已加载类的方法信息,是 Search-Method 的简写。 命令: 主要命令: sm -d [类的全限定名] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |