是否有可能从类源代码中形成的字节码中挖掘出类名?
情况是这样的:我从某个地方远程获取一个类字节码,它来自何处无关紧要.要使用类加载器有效地加载该类,我还需要拥有类名...对吗?
我一直在看一些Java字节码,我一直在寻找一个奇怪的模式,我似乎无法转化为任何合理的Java结构:
if ( <cond1> )
goto Label;
do {
<code1>
Label:
<code2>
} while ( <cond2> );
Run Code Online (Sandbox Code Playgroud)
是否有任何合理的Java构造可以反编译为?我能想到的是非常复杂的模式,它引入了额外的状态来跟踪它是否是循环的第一次迭代.
我想使用某种编辑器打开由Java Compiler生成的字节代码(Java二进制文件),这允许我查看字节代码(Raw,但人类可以理解,采用此处定义的格式)并直接修改.class文件中的内容.
我试过这个javap实用程序.但通过javap,我无法更改我的.class文件,它似乎也没有显示原始字节代码
此外,我已经看到像JD Decompiler这样的反编译器,它给了我来自.classFile 的代码.但我对源代码不感兴趣,我想查看字节码.
另外,我尝试过名为dirtyJOE&JBE的 GUI编辑器.这个编辑器非常好,完成了我的目的的一半.我可以在.class文件中看到各种字段并编辑我的.class文件.但这似乎也就像一个翻译器,它解码字节码并在UI上显示它以便于理解.它没有显示原始字节代码.
甚至可以转到原始字节码?
我可能听起来很愚蠢,但我想确认这一点,以正确理解Java编译器和JVM.
我正在写一个Lua字节码解释器,我正在尝试在LuaJIT和luac之间做出决定来生成初始字节码.因为我正在编写一个解释器,所以我不会得到任何JIT性能,所以这一切都取决于编译器的质量和生成的字节码的设计.
是否要么编译器明显更好?
我在Dart(也是解释)中写这个,所以我们赞赏编译器的任何免费优化.
我最近一直在讨论JVM字节码,我想知道是否重构性能关键代码以利用Tload_ <n>指令(aload_0,aload_1,aload_2等)而不是两个操作数Tload指令会网任何可观的性能优势?
这完全属于"您永远不需要的微观优化"类别,但认为它是学术上的好奇心.如果一个方法可以将其局部变量表保存在7个条目下,那么性能优势(如果有的话)可以表现出来吗?我认为这可能只会导致字节码变得越来越小.
关于字节码级优化的阅读材料的质量链接的奖励点!
我知道你可以在像grepcode这样的地方查看Java的"源代码",但我正在寻找一些方法来查看构建在Java之上的C代码.我觉得这个问题肯定已被多次提出,但我找不到满意的答案.
这不是出于任何明确的目的 - 我只想了解编程语言如何"构建"得更好一点.
此外,如果有人可以展示如何查看生成的字节码,这可能也会有所帮助.
该throws方法的名单显然起着编译过程中的作用.然而,它在运行时是否有任何影响?
例如,如果我有一个没有throws列表的方法并使用黑暗的字节码魔法来召唤并抛出一个IncrediblyCheckedException,它会毫无疑问地抛出它,或者运行时验证器会注意到这个并抛出错误或者其他东西吗?
有没有办法将我的Python程序移动到其他计算机而无需重新安装所有必需的模块?
也许通过编译?
我的IDE是Netbeans.我的教授要求我用源代码(.java文件)和字节代码提交作业.但我不知道如何将源代码转换为字节代码.我在谷歌搜索它但没有找到答案.请帮忙.谢谢.
我使用Jacoco找到的单元测试代码覆盖率ANT但不生成报告,我得到这个错误序列:
[jacoco:report] Loading execution data file C:\JUnit\apache-ant-1.10.1\jacoco.ex
ec
[jacoco:report] Writing bundle 'Test' with 566 classes
[jacoco:report] Classes in bundle 'Test' do no match with execution data. For report generation the same class files must be used as at runtime.
[jacoco:report] Execution data for class com/!!/AccountDetails does not match.
[jacoco:report] Execution data for class com/!!/DataExtractorHelper does not match.
[jacoco:report] Execution data for class com/!!/WelcomeLetter does not match.
[jacoco:report] Execution data for class com/!!/WelcomeLetterABCD does not match.
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这些答案,但似乎没有一个能帮助我解决问题。 …
bytecode ×10
java ×8
interpreter ×2
jvm ×2
.class-file ×1
ant ×1
c ×1
decompiling ×1
exception ×1
jacoco ×1
javac ×1
lua ×1
luajit ×1
netbeans ×1
optimization ×1
python ×1
python-3.x ×1
reflection ×1