返回顶部
首页 > 资讯 > 精选 >怎么查看运行中Java Class源码的三板斧
  • 310
分享到

怎么查看运行中Java Class源码的三板斧

2023-06-15 23:06:55 310人浏览 安东尼
摘要

这篇文章主要讲解了“怎么查看运行中Java Class源码的三板斧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么查看运行中Java Class源码的三板斧”吧!线上跑了个应用,总感觉运行

这篇文章主要讲解了“怎么查看运行中Java Class源码的三板斧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么查看运行中Java Class源码的三板斧”吧!

线上跑了个应用,总感觉运行结果和你预期的有出入,而且代码似乎和你本地的也不一致。这可咋办,一咬牙,一跺脚停机重新上线吗?

那是够折腾的,我们来了解几种不停机来查看 Java 应用Class 源码的方式。

像程咬金的功夫一样,针对Class 源码查看,我们也有三板斧。

一般我们要查看一个运行中程序的 Class 源码,大致会经过这样三步:

一、定位,找到这个Class

二、将远程 的 class 文件下载到本地

三、反编译,查看源码

这的过程,应该都很清楚,我们重点来看第一第二步,怎样找到这个class并下载到本地。

对于找Class 来说,如果是我们自己开发的代码,而不是编译时或者运行时增强以及生成的,那直接在远程服务器搜索到并下载到本地就OK了。

像那些编译时、以及运行时增强过的Class,甚至动态生成的Class,比如像OpenJPA、spring/Cglib 的动态代理,  上面的办法就无能为力了。

这种情况,可以直接用jdk 的神器 SA 工具(Java虚拟机的显微镜 Serviceability Agent),在 Class browser  里直接搜索,然后选择 create .class file 文件就会默认保存到 SA jar 所在的目录。不过缺点是,SA连接时会把应用挂起,直到断开。

还有一种方法是各种增强的类库,都默认提供了保存生成类的配置,如果此选项打开,就会把生成的、增强的class  写到本地。比如像Cglib,在System.property里设置即可。

System.setProperty(DebugginGClassWriter.DEBUG_LOCATioN_PROPERTY, ".");

Cglib 运行时判断配置,打开就会把生成类的 class 二进制文件写到本地。

如果类库没有或者你没找到这个选项,又确实想要查看,那可以 Attach 一个 Java Agent  到JVM上。用Instrument或者ByteBuddy免 Jar 包挂上去,参考之前的文章(不用Jar 包的Agent?几行代码实现运行时增强)

有了Agent 的 transfORMer,大显身手就看你的了。

感谢各位的阅读,以上就是“怎么查看运行中Java Class源码的三板斧”的内容了,经过本文的学习后,相信大家对怎么查看运行中Java Class源码的三板斧这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么查看运行中Java Class源码的三板斧

本文链接: https://lsjlt.com/news/281834.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么查看运行中Java Class源码的三板斧
    这篇文章主要讲解了“怎么查看运行中Java Class源码的三板斧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么查看运行中Java Class源码的三板斧”吧!线上跑了个应用,总感觉运行...
    99+
    2023-06-15
  • java怎么查看注解源码
    要查看Java注解的源码,可以按照以下步骤进行: 打开Java IDE(例如Eclipse、IntelliJ IDEA)。 在项目...
    99+
    2023-10-26
    java
  • PyCharm中如何在运行状态下查看源代码
    这篇文章主要介绍了PyCharm中如何在运行状态下查看源代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如何在运行状态下查看源代码查看该函数的源代码,我们通常使用IDE来完...
    99+
    2023-06-27
  • java怎么查看线程运行状态
    Java提供了一些方法来查看线程的运行状态,可以使用下面的方法来查看线程的状态:1. 使用`Thread.getState()`方法...
    99+
    2023-08-18
    java
  • java怎么让源码加密还能运行
    要让Java源码加密并能运行,可以使用以下步骤:1. 使用Java编译器(javac)将源代码编译成字节码文件(.class文件):...
    99+
    2023-08-25
    java
  • centos怎么查看运行的进程
    要查看运行的进程,你可以使用以下命令:```bashps aux```这将显示所有正在运行的进程的详细信息,包括进程ID(PID)、...
    99+
    2023-10-09
    centos
  • centos怎么查看运行的程序
    要查看CentOS上运行的程序,可以使用以下命令:1. 使用 `ps` 命令查看当前运行的进程:```ps aux | less``...
    99+
    2023-09-11
    centos
  • win7系统的运行怎么查看
    要查看Win7系统的运行情况,可以使用以下方法:1. 打开任务管理器:按下Ctrl+Shift+Esc组合键,或者按下Ctrl+Al...
    99+
    2023-10-20
    win7
  • 怎么使用docker查看运行中的容器
    本文小编为大家详细介绍“怎么使用docker查看运行中的容器”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用docker查看运行中的容器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。列出所有在运行的容器信...
    99+
    2023-06-30
  • Linux系统中怎么查看运行级别
    这篇文章主要讲解了“Linux系统中怎么查看运行级别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统中怎么查看运行级别”吧!解决方案:Redhat Linux9/AS2.1/AS...
    99+
    2023-06-13
  • DB2中怎么查看正在运行的SQL语句
    在DB2中,可以使用如下命令来查看正在运行的SQL语句: 使用命令行工具连接到DB2数据库实例。 运行以下命令来查看当前正在...
    99+
    2024-03-07
    DB2
  • java代码是怎么运行的
    java虚拟机具体是怎样运行java字节码的?从虚拟机的视角来看,执行java代码首先需要将它编译而成的class文件加载到java虚拟机中。加载后的java类会被存放在方法区中。实际运行时,虚拟机会执行方法区的代码。 (推荐学习...
    99+
    2019-05-29
    java入门 java
  • 怎么查看mysql语句的运行时间
    这篇文章主要介绍了怎么查看mysql语句的运行时间,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。查看mysql语句运行时间的方法:首先执行【se...
    99+
    2024-04-02
  • linux下怎么查看nohup的运行详情
    在Linux下可以使用以下命令查看nohup的运行详情:1. 使用`ps -ef | grep nohup`命令查看nohup进程的...
    99+
    2023-10-08
    linux
  • centos怎么查看当前运行的程序
    要查看当前运行的程序,您可以使用以下命令:1. 使用 `ps` 命令,它用于报告当前运行的进程信息。通过以下命令可以列出当前运行的所...
    99+
    2023-10-10
    centos
  • Linux怎么查看进程运行的位置
    本篇内容主要讲解“Linux怎么查看进程运行的位置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux怎么查看进程运行的位置”吧!Linux查看进程运行位置具体方法1、通过ps或者top命令...
    99+
    2023-06-28
  • ubuntu怎么查看正在运行的程序
    在Ubuntu中,可以使用以下命令来查看正在运行的程序: 使用top命令: 在终端中输入`top`,然后按下回车键,会显示当前正...
    99+
    2023-10-25
    ubuntu
  • linux怎么查看当前运行的服务
    在Linux系统中,可以使用以下命令来查看当前运行的服务: 使用`systemctl`命令来查看系统服务的运行状态: syste...
    99+
    2023-10-26
    linux
  • 怎么查看MySQL正在运行的进程
    可以使用以下命令查看MySQL正在运行的进程: 登录MySQL服务器:在终端输入以下命令登录到MySQL服务器: mysql -...
    99+
    2024-04-09
    MySQL
  • 怎么查看Linux中所有正在运行的服务
    小编给大家分享一下怎么查看Linux中所有正在运行的服务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!有许多方法和工具可以查看 Linux 中所有正在运行的服务。...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作