如何在不访问源代码的情况下从现有 Java 应用程序检索实时数据?
How to retrieve real-time data from an existing Java application without access to source code?
我正在尝试从 运行 Java 应用程序检索实时数据并将其推送到服务器上的 API。|
我无法访问 运行 应用程序的源代码;我只有 Jar 文件。我试过反编译成 .java 文件;但是,由于应用程序的规模,我无法修复所有缺失的 access$000 函数调用。
从现有 Java 应用程序检索实时数据时,我应该使用某种方法吗?以前做过吗?我是否遗漏了一些我不知道的东西?
感谢任何帮助。
这显然是一个很大的挑战。如果您可以从反编译和读取日志文件中收集到对程序如何工作的足够理解,以针对您怀疑有您感兴趣的数据的某些方法 API,那么我会阅读有关面向方面的编程 [AOP] 并使用那些工具。
使用 AOP,您可以在运行时修改 JVM 加载的 jar 文件中的 classes 并访问 classes。
例如:您可以从以下位置收集数据:
- class 中的字段拥有方法
- 传递给方法的参数
- 方法返回的值
收集数据后,您还可以插入对 API 的调用。
从这里开始 - https://www.baeldung.com/aspectj .
我正在尝试从 运行 Java 应用程序检索实时数据并将其推送到服务器上的 API。|
我无法访问 运行 应用程序的源代码;我只有 Jar 文件。我试过反编译成 .java 文件;但是,由于应用程序的规模,我无法修复所有缺失的 access$000 函数调用。
从现有 Java 应用程序检索实时数据时,我应该使用某种方法吗?以前做过吗?我是否遗漏了一些我不知道的东西?
感谢任何帮助。
这显然是一个很大的挑战。如果您可以从反编译和读取日志文件中收集到对程序如何工作的足够理解,以针对您怀疑有您感兴趣的数据的某些方法 API,那么我会阅读有关面向方面的编程 [AOP] 并使用那些工具。
使用 AOP,您可以在运行时修改 JVM 加载的 jar 文件中的 classes 并访问 classes。
例如:您可以从以下位置收集数据:
- class 中的字段拥有方法
- 传递给方法的参数
- 方法返回的值
收集数据后,您还可以插入对 API 的调用。
从这里开始 - https://www.baeldung.com/aspectj .