JasminはJVMではない、それはJava bytecodeアセンブラです。それはJARとして展開されているので
はあなたがとにかくのJavaを使って開発しようとしているので、しかし全体JDK がより良い選択かもしれインストールし、JRE はそれを使用する必要があります。それを実行するには
、java
と仮定すると次のことができ、あなたのPATH環境VARである:
jasmin.jar
が置かれているディレクトリに移動して、あなたのCLASSPATH
java -jar jasmin.jar <input>
編集]を実行します環境変数jasmin.jar
のファイル名を含めるには、上記のコマンドを実行してください。どこでも。ヘッダ、定数プール、属性、メソッド、フィールド:完全にあなたが特にさまざまなセクションについては、Java class file format について何かを読み取る優れているジャスミンのディレクティブを理解するために
。
最後にbyte code instructionsを学ぶ必要があります。
Jasminは単純な低レベルのアセンブラではないことに注意してください。
例えば、getXXX
とinvokeXXX
のような命令から定数プールを完全に抽象化します。
また、一部の手順には異なる名前があります(例:invokenonvirtual
< - >invokespecial
)。詳しくはhereをご覧ください。
最後JLSとCLASSファイルフォーマットの固体知識は、具体的にはジェネリックとインナークラスが実装されている方法で、必要です。
このクラスはコンストラクタを持っていないという単純なhelloworld.j
.bytecode 51.0 ;Java 7
.class public helloworld
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit stack 2 ;Max stack depth
.limit locals 1 ;Locals + args = 0 + 1 = 1
getstatic java/lang/System/out Ljava/io/PrintStream;
;Stack: System.out object
ldc "Hello world!"
;Stack: System.out object, string
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
;Stack:/
return
.end method
注意。
あなたは
java -jar jasmin.jar helloworld.j
java helloworld
Javaアプリケーションを実行するためのバイナリのセットでこのプログラムをアセンブルし、実行することができます。
Javaアプリケーションを開発するための一連のバイナリです。これにはJREが含まれます。
Wikipediaの概要。
メソッドのコードは、実際には前者の属性です。
ありがとう、私は今これにもっと慣れて感じる。どのようなテキストエディタにジャスミンコードを書いているのですか? – rheak
@rheak通常、デフォルトのもの:Windowsではメモ帳、KDEではkate、OS Xではテキストエディタです。ジャスミンでコーディングするときにはファンシーな機能は必要ありませんが、毎日Javaバイトコードを書きません。 –