当前位置: 首页 > 面试题库 >

如何以编程方式生成.class文件?

岳枫
2023-03-14
问题内容

我想为Java的玩具语言编写一个编译器。我想生成可运行的.class文件。我想知道执行此操作的最佳库或工具是什么?我知道我可以学习所有指令的二进制格式并建立自己的常量池等,但这似乎应该已经完成​​:没必要重新发明轮子,对吗?

在线搜索我发现了两种不同的Java汇编语言Jasmin和Jamaica,但是只有Jasmin看起来有所维护。

是否存在用于将字节码写入流的Java库?这是Apache BCEL吗?

他们的工具是否像Antlr那样是字节码生成的“标准”工具?

PS-玩具语言是Brainf
***
,我想要一个我可以拥有一个简单“语法”的地方,因此我可以专注于生成方面,而不是解析部分……这将在下一步进行。


问题答案:

ASM和BCEL基本上做类似的事情。我建议使用ASM,因为它受更多的支持,更小并且是最新的JDK。



 类似资料:
  • 问题内容: 我目前正在从事一个项目,该项目要求我以编程方式将.class文件反编译为Java文件。IE我有一个程序,应该读取一个类文件并对其进行反编译,并将生成的Java源代码写入文件中。请帮我做。 编辑:我是反编译器世界的全新手。我已经看过一些API,但是我不知道到底该如何使用以及使用哪个API。任何形式的帮助将是非常可观的 编辑: 我尝试使用: 但是上面的代码只是在指定的目录中创建了一个名为“

  • 问题内容: 有没有人使用基于Java的库来生成excel文档?最好支持2003年? 问题答案: 我目前正在使用非常全面的Apache POI(http://poi.apache.org/index.html)。2003文件格式版本仍处于beta版本,但似乎运行良好。我并没有很好地利用它的功能,只是对Excel进行简单的读写,但这似乎是可靠的。

  • 问题内容: 我正在做一个项目,我们在Java服务和以其他各种语言编写的客户端之间进行大量的远程对象传输。考虑到我们当前的限制,我决定查看基于现有Java类生成代码所需要的内容。基本上,我需要获取一个文件(或它们的集合)来解析字节码,以确定所有数据成员,甚至可能是getter / setter,然后编写一些可以输出不同语言代码的内容,以创建具有相同结构的类。 我不是在寻找像JAD这样的标准反编译器。

  • 注意:我知道我可以通过导航到/{documentname}/swagger.json来访问和查看swagger文档,但这不允许我更改它

  • 问题内容: 给定2种rgb颜色和一个矩形区域,我想在这些颜色之间生成基本的线性渐变。我已经进行了快速搜索,唯一能够找到的是此Blog条目,但示例代码似乎丢失了,或者至少是在发布此信息之时。任何帮助,算法,代码示例,等等。这将用Java编写,但是显示层已经处理完毕,我只需要弄清楚如何弄清楚要显示的内容。 问题答案: 您需要在第一和第二种颜色之间进行插值。通过为每个分量(R,G,B)计算相同的插值,可

  • 是否可以在Inno安装程序中以编程方式生成文件标志?我的安装程序源代码在一个相当大的目录结构中包含大量文件。目前,我通过一次添加整个文件夹来最小化脚本的复杂性。这很有效,但是,有许多文件分散在整个层次结构中,它们没有从压缩中受益(例如*. jpg),并且显着增加了安装程序构建时间。理想情况下,我想做以下事情: 其中GetFlages将检查当前文件的扩展名,并为我不想压缩的文件类型返回“未压缩”。这