这似乎是一个奇怪的问题,但我需要永远解释为什么我需要它......
我需要的是一种在其 JAR 文件中使用命令提示符或在我的 Python 程序中编辑预先存在的 Java .class 文件的方法。一旦用户按下按钮,我需要它自动发生。
我完全不知道如何做到这一点,或者是否有可能。
jar 文件是一个 zip 包,您只需要解压文件,编辑内容并将其放回去。更难的部分是如何编辑 .class 文件。java .class 文件是二进制格式,有几个库可以帮助你。
是的,你可以这样做。现在你要怎么做取决于你想做什么。对于您的跨领域问题,请查看AspectJ。使用 AspectJ,即使在编译类之后,您也可以添加自定义代码。
如果该类已由 JVM 类加载器加载,则此方法存在问题,因为在重新运行应用程序之前,它实际上可能不会再次重新读取 .class 文件。
我知道存在BCEL,但我没有使用它,所以我不知道它是否可以在运行时使用 a) 从 python 或 b) 在运行时。
编辑:实际上,Jeffrey 的列表更好,因为它提供了更全面的字节码操纵器列表。