首页 > TAG信息列表 > jvm-bytecode

超过65535字节的Java字符串文字的字节码

我一直在从各种文件中读取Java字节码,以帮助我理解该项目的.class文件,在该项目中,我需要与没有源代码且文档不多的第三方库集成. 出于我自己的娱乐,我在我的maven存储库中运行了Apache BCEL库,以查看在哪里使用了稀有的类和方法属性,例如类型注释,以及原因. 我偶然发现了一个特定

为什么Java 1.0.2中的Interface Member没有设置ACC_ABSTRACT?

我编写了一个简单的Java字节码解析器进行一些实验,最近它在一个意外的地方失败了.从Java 1.1.8.16的rt.jar读取java / lang / reflect / Member.java时,我的解析器很生气,因为Member像这样开始(请注意缺少的ACC_ABSTRACT标志): Classfile Member.class Last modified Aug 8, 2002

有没有一种聪明的方法来确定Java字节码指令的长度?

我正在为Java创建一个静态分析工具,并且有一些关于我正在分析的程序的信息,如果我可以从.class文件中的字节码中获取它,将会更容易获得. 我不关心可能在类文件中的每一个instructions.例如,我可能只需要查看是否有任何getfield指令. 问题是,由于每条指令都有一个可变长度,似乎在一

java – 根据执行历史记录,给定指令的操作数堆栈大小是否不同?

例如,对于方法 public int f() { int k = 1; for (int i = 0; i < 10; i++) { k += 2; } return k; } javac生成以下字节码: public int f(); Code: 0: iconst_1 1: istore_1 2: iconst_0 3: istore_2 4: iload_2 5: bipush 10

Java字节码:局部变量表与堆栈计算

假设我们有以下课程: final class Impl implements Gateway3 { private final Sensor sensor1; private final Sensor sensor2; private final Sensor sensor3; private final Alarm alarm; public Impl(Sensor sensor1, Sensor sensor2, Sensor sensor3, Al

未使用的局部变量Java 8 – java.lang.VerifyError:不一致的stackmap帧

我最近将项目从1.7升级到Java 1.8. 我得到一个异常的堆栈映射的异常,我的一个类中的方法. 在方法中初始化一些未分配的局部变量解决了它,但有人可以解释为什么使用未读变量会在Java 8中引发异常,谢谢. 它可能与使用的eclipse版本(Kepler SR 2 20140224-0627),只是好奇. 解决方法 >

android – Dalvik字节码中的“throws”和“exception of annotation”

为什么生成字节代码为 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/FileNotFoundException; } .end annotation 而不是.throws Ljava / io / FileNotFoundException 如果一个方法声明在java代码的头文件中抛出FileNotFound