java 查看类常量池_Java - 如何找出哪个类文件有一个损坏的常量池?

是否有某种工具或javac的一些更好的输出来确定哪个类文件具有损坏的常量池..由于某些预编译的文件有一个损坏的常量池,我无法编译一些现有的java文件。

这里是一个腐败的常量池打印出来的样子

An exception has occurred in the compiler (1.6.0_26). Please file a bug at the J

ava Developer Connection (http://java.sun.com/webapps/bugreport) after checking

the Bug Parade for duplicates. Include your program and the following diagnosti

c in your report. Thank you.

java.lang.ArrayIndexOutOfBoundsException: 8047705

at com.sun.tools.javac.jvm.ClassReader.nextInt(ClassReader.java:277)

at com.sun.tools.javac.jvm.ClassReader.skipMember(ClassReader.java:1504)

at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1559)

at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:16

58)

at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1845)

at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777)

at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)

at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763)

at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1951)

at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:842)

at com.sun.tools.javac.comp.Resolve.findIdentInPackage(Resolve.java:1011

)

at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:1921)

at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1835)

at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1522

)

at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)

at com.sun.tools.javac.comp.Attr.attribType(Attr.java:390)

at com.sun.tools.javac.comp.MemberEnter.attribImportType(MemberEnter.jav

a:681)

at com.sun.tools.javac.comp.MemberEnter.visitImport(MemberEnter.java:545

)

at com.sun.tools.javac.tree.JCTree$JCImport.accept(JCTree.java:495)

at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387

)

at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:399

)

at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:5

12)

at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:

446)

at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387

)

at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:819)

at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)

at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763)

at com.sun.tools.javac.comp.Enter.complete(Enter.java:464)

at com.sun.tools.javac.main.JavaCompiler.complete(JavaCompiler.java:659)

at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1869)

at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777)

at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)

at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763)

at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1951)

at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:842)

at com.sun.tools.javac.comp.Resolve.findGlobalType(Resolve.java:901)

at com.sun.tools.javac.comp.Resolve.findType(Resolve.java:957)

at com.sun.tools.javac.comp.Resolve.findIdent(Resolve.java:986)

at com.sun.tools.javac.comp.Resolve.resolveIdent(Resolve.java:1162)

at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:1714)

at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1547)

at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)

at com.sun.tools.javac.comp.Attr.attribType(Attr.java:390)

at com.sun.tools.javac.comp.MemberEnter.signature(MemberEnter.java:355)

at com.sun.tools.javac.comp.MemberEnter.visitMethodDef(MemberEnter.java:

560)

at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:639)

at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387

)

at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:399

)

at com.sun.tools.javac.comp.MemberEnter.finishClass(MemberEnter.java:410

)

at com.sun.tools.javac.comp.MemberEnter.finish(MemberEnter.java:1000)

at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:967)

at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)

at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763)

at com.sun.tools.javac.comp.Enter.complete(Enter.java:464)

at com.sun.tools.javac.comp.Enter.main(Enter.java:442)

at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:81

9)

at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)

at com.sun.tools.javac.main.Main.compile(Main.java:353)

at com.sun.tools.javac.main.Main.compile(Main.java:279)

at com.sun.tools.javac.main.Main.compile(Main.java:270)

at com.sun.tools.javac.Main.compile(Main.java:69)

at com.sun.tools.javac.Main.main(Main.java:54)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值