*

[Java, jt400]AS400のCLからJavaをCallする方法。

公開日: : 最終更新日:2015/03/16 AS400, CLP, i Series, java, System i

久しぶりにAS400ネタ。

CLからJavaを呼び出したい!!

JavaをCLから実行したい場合があります。
バッチ的にスケジュールで流すとかね。
というわけでそのソースです。

前提条件として、/qibm/ProdData/Java400というIFS環境に、
testjavaというプロジェクトを置いたときとします。
main関数はTest.class。

解説

      PGM                                                           
                                                                    
      DCL        VAR(&TMP) TYPE(*DEC) LEN(5 0)                      
      RTVJOBA    CCSID(&TMP)                                        
      CHGJOB     CCSID(5035)                                        
                                                                    
      ADDENVVAR  ENVVAR(CLASSPATH) +                                
                   VALUE('.:/qibm/ProdData/Java400/')              
                                                                    
      RUNJVA     CLASS(testjava.Test) OUTPUT(*PRINT)        
                                                                    
      RMVENVVAR  ENVVAR(CLASSPATH)                                  
      CHGJOB     CCSID(&TMP)                                        
                                                                    
      ENDPGM                                                        

解説

Javaを実行するときに必要なことは、「CCSIDを5035に変えること」と、「環境変数の準備」です。
CCSIDについては、一度現在のCCSIDを保管して、終了時に元に戻しています。
環境変数CLASSPATHについては、JOB単位で環境変数を変更し、こちらも終了時に元に戻しています。
環境変数自体はプロジェクトのフォルダが存在するディレクトリにPathを通します。
UNIX形式なので、区切り記号は「:」(コロン)です。参考用にカレントディレクトリも追加しています。

RUNJVAのOUTPUTというプロパティが*PRINTなのは、バッチ的なプログラムのとき、メッセージログを残すためです。
System.out.println()等による標準出力メッセージは表示が一瞬かつ実行環境がJavaになっているため、AS400のログに残せません。
(私がやり方知らないだけかも)
ログに残したい場合は、このように*PRINTにすると、スプールとして保管してくれます。

ad

関連記事

wannabenote

[jt400, java]AS400用のJavaをPCで実行したとき、終了しない理由

終了しない JavaでAS400をいじってると、たまに、終了しないんです。 プロセスが残ったまま

記事を読む

logo

[java, NETBEANS]出来上がったclassファイルをコマンドラインで実行する。

コマンドラインから実行 以前作成したJavaのHelloWorldをコマンドラインから実行してみま

記事を読む

logo

[jt400, Java]レコードレベルアクセスの実現

到着順 AS400のファイルシステムですと、レコードを読み込んで、処理して、出力して、次のレコード

記事を読む

logo

[java, jt400]AS400ネイティブ環境でjavaを起動し、ファイルに対するSQLを実行する方法。

日本語資料なさすぎだから自分で作ります。 AS400がでjavaを起動して、自分のファイルを見に行

記事を読む

AS400_

[java, JDBC]AS400からOracleに接続をする

javaでAS400からOracleに接続する必要があったときのメモを清書。 AS400のPG

記事を読む

logo

[Java]DbUtilsでORA-12519エラー

DbUtilsを使ってたんですが、Oracleに対して処理するとORA-12519というエラーコード

記事を読む

logo

AS400のインターフェースファイル

AS400にODBC接続するときに、ライブラリ名一覧が欲しい場合があります。 さて、それでは、

記事を読む

cwbx.dll 参照の追加

[C#,AS400]C#でAS400のプログラムCallとコマンドの実行方法。

PCのプログラムからCall AS400のRPGPGMをPCから呼び出ししたいときがあります。

記事を読む

wannabenote

[Java, Oracle]NetBeansでojdbc6.jarに参照設定をし、JavaでOracleに接続する。

NetBeansでJavaでOracleに接続する そんなプログラムを作りたい。 というわけで作

記事を読む

logo

[Java, DBUtils]ApacheのDBUtilsを利用して、データベースにアクセスする。

手抜きがしたい オブジェクト指向をする上で、o/r mapperが欲しくなります。 かなーり昔に

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑