Возможно ли написать программу с инструкциями по байт-коду Java напрямую?
В платформе .NET можно напрямую написать программу с Common Intermediate Language и скомпилировать источники с помощью IL Assembler (ILASM).
Например, ниже код - это программа Hello World.
.assembly Hello {}
.assembly extern mscorlib {}
.method static void Main()
{
.entrypoint
.maxstack 1
ldstr "Hello, world!"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
Возможно ли написать программу с инструкциями байт-кода Java напрямую, как .NET?
Ответы
Ответ 1
Вы можете проверить Джасмин. Из Википедии,
Некоторые проекты предоставляют Java-ассемблеры, позволяющие вручную писать байт-код Java. Код сборки также может быть сгенерирован машиной, например, с помощью таргетинга на виртуальную машину Java. Известные сборщики Java включают в себя:
Jasmin, принимает текстовые описания для классов Java, написанные в простом ассемблерном синтаксисе с использованием набора инструкций Java Virtual Machine и генерирует файл класса Java.
Ямайка - язык ассемблерной сборки для виртуальной машины Java. Синтаксис Java используется для определения класса или интерфейса. Органы метода задаются с использованием инструкций байт-кода.
Примечание. Я не использовал ни один из этих инструментов лично.
Ответ 2
Вы можете использовать Jasmin
.class public HelloWorld
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit stack 3
.limit locals 1
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Hello World."
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method
Скомпилируйте его, используя:
java -jar jasmin.jar hello.j
Вы можете также ссылаться на