zxh0/classpy

对Class文件中的Long类型解析错误

MrBear2018 opened this issue · 3 comments

如题,Java源码如下所示:

package jvmgo.book.ch03;

public class ClassFileTest {
    
    public static final boolean FLAG = true;
    public static final byte BYTE = 123;
    public static final char X = 'X';
    public static final short SHORT = 12345;
    public static final int INT = 123456789;
    public static final long LONG = 12345678901L;
    public static final float PI = 3.14f;
    public static final double E = 2.71828;
    
    public static void main(String[] args) throws RuntimeException {
        System.out.println("Hello, World!");
    }
    
}

对于其中的public static final long LONG = 12345678901L;进行解析是,在常量池中,这个12345678901L解析出现错误。错误截图如下所示:
Snipaste_2020-05-04_17-28-36
javap -v的结果如下所示:
Snipaste_2020-05-04_17-30-20

我是直接下载的classpy-0.4.jar文件运行的,系统是windows10。我看您书里面的截图是可以正常的解析的,不知道是不是系统的原因?

zxh0 commented

可以用最新版(v0.7)试一下吗?看看是否仍然有问题。谢谢。

最新的版本是正常的,可以正常解析了。
捂脸),我从csdn那边的链接过来的,当时以为v0.4就已经是最高的版本了,没仔细去翻release。