トップ 一覧 置換 検索 ヘルプ RSS ログイン

javaの逆アセンブルの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
jt400.jar
にクラスパスを通して
 jdbc:as400://xxx.xxx.xxx.xxx
または
 jdbc:as400://xxx.xxx.xxx.xxx/libname
みたいな感じ。
!!!参考
http://www.ne.jp/asahi/hishidama/home/tech/java/bytecode.html

!!!バイナリデータの読み書きをする
AS400に対して、バイナリデータの読み(getBytes)書き(setBytes)をするには
DDS上のデータの種類を
 H (FOR BIT DATA)
にする必要がある。
 A(文字列)
だとgetBytesはできても、setBytes が使えない。
!!!概要
バイトコード(インストラクションコード?)はいわばアセンブリ言語のようなもので、javapやjadを使うとclassファイルから簡単に逆アセンブルすることが出来る。

!!!トランザクションについて
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/tips/db2_error_SQL7008/
AS400 の場合、ジャーナル処理を開始していない場合
 SQL7008
が出る。対処方法は3つ。
!!!命令の例
コード
 int n = 123;
 int m = 3;
 int t = m + n;

!対処法1
 setAutoCommit(true)
にする。トランザクション処理は出来ないがとりあえず動かすことは出来る。

!対処法2
http://stackoverflow.com/questions/8232611/sql7008-error-workaround
 setTransactionIsolation(Connection.TRANSACTION_NONE)
にする。または、接続文字列に
 transaction isolation=none;
を追加する。

 jdbc:as400://systemname;transaction isolation=none;


!対処法3
AS400 でジャーナル処理を開始する。
バイトコード
 0:   bipush  123	←123をスタックに入れる(PUSH)
 2:   istore_1		←スタックから値を取り出し(POP)、ローカル変数1に入れる
 3:   iconst_3		←定数3をスタックに入れる(PUSH)
 4:   istore_2		←スタックから値を取り出し(POP)、ローカル変数2に入れる
 5:   iload_2		←ローカル変数2をスタックに入れる(PUSH)
 6:   iload_1		←ローカル変数1をスタックに入れる(PUSH)
 7:   iadd		←スタックから値を2つ取り出し(POP×2)、加算して結果をスタックに入れる(PUSH)
 8:   istore_3		←スタックから値を取り出し、ローカル変数3に入れる

{{category2 プログラミング言語,Java}}
{{category2 OS,AS400}}