Java类转化为Jasmin汇编代码

标签 java jasmin

import java.util.Scanner;

public class Sample {
   public static void main(String []args){
      Scanner scan = new Scanner(System.in);
      int intAge;

      intAge = scan.nextInt();

      System.out.println("Your age is " + lol + " years old.");

      }
}

有什么办法可以将这段代码转换成jasmin汇编代码吗?我很难找到一种方法来做到这一点。答案将不胜感激。

最佳答案

http://classfileanalyzer.javaseiten.de/
一个人的项目,非常古​​老(最后更新 2009 年),
但根据wikipedia jasmin 的最后一次更新是 2010 年。

我用一个简单的文件测试了它,它工作正常。

编辑:我正在展示示例的用法和输出,以保证答案的完整性。 (上面代码中的lol被替换为intAge)

java -cp classfileanalyzer-0.8.0.jar ClassFileAnalyzer Sample.class 

; Sample.j

; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.8.0 


.bytecode 51.0
.source Sample.java
.class public Sample
.super java/lang/Object

.method public <init>()V
  .limit stack 1
  .limit locals 1
  .line 3
  0: aload_0
  1: invokespecial java/lang/Object/<init>()V
  4: return
.end method

.method public static main([Ljava/lang/String;)V
  .limit stack 3
  .limit locals 3
  .line 5
  0: new java/util/Scanner
  3: dup
  4: getstatic java/lang/System/in Ljava/io/InputStream;
  7: invokespecial java/util/Scanner/<init>(Ljava/io/InputStream;)V
  10: astore_1
  .line 8
  11: aload_1
  12: invokevirtual java/util/Scanner/nextInt()I
  15: istore_2
  .line 10
  16: getstatic java/lang/System/out Ljava/io/PrintStream;
  19: new java/lang/StringBuilder
  22: dup
  23: invokespecial java/lang/StringBuilder/<init>()V
  26: ldc "Your age is "
  28: invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  31: iload_2
  32: invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder;
  35: ldc " years old."
  37: invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  40: invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String;
  43: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
  .line 12
  46: return
.end method

关于Java类转化为Jasmin汇编代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154150/

相关文章:

java - Jasmin 汇编器验证错误 : Expecting to find object/array on stack

java - 使用没有任何抽象方法的抽象类

java - 在 Grails 中创建连接的 HQL 时失败

java - 使负数为正

bytecode - Jasminbytecode 表示缺少 goto 指令的参数

java - Jasmine 汇编器 : 'l2d' Instruction Giving "java.lang.VerifyError: ... Attempt to split long or double on the stack"

java - 编译/反汇编Java而不创建常量池?

java - Spring数据jpa deleteBy查询不起作用

java - Stringbuilder subSequence方法的时间复杂度