MENU

07 IBM iの基礎[Java開発] ~IBM iでサポートされるJavaの特徴と必要なツール群 |新・IBM i入門ガイド[開発編]

IBM iというとRPGやCOBOLなどレガシーなイメージが先行するが、他のプラットフォームと同様、Javaでの開発・実行が可能である。オープン系ではどのJavaを使うか、あるいはサポート期間が短いなど、利用を迷うこともあるが、IBM iのJavaはIBM i用に最適化されつつも、Oracle Javaと互換性のある実装となっており、サポート期間もOSと同じである。

以下に、IBM iでJava開発する際に必要となるツール群を紹介する。

IBM iでサポートされるJava

開発・実行に必要となる「IBM Developer Kit for Java」は、ライセンス・プログラム 5770-JV1で提供されている。IBM i でのJVM(Java Virtual Machine)は、PASE(Portable Application Solutions Environment)上で稼働するため、前提として5770SS1のオプション33も導入する必要がある。

PASEとは、AIXアプリケーションをIBM iに移植するための実行環境で、Visual Studio Code(以下、VSCode)で接続するときに使用するSSHやGitのように、オープンソースのソリューションをIBM iで実装できるようになっている。

IBM i Javaでは複数のバージョンをサポートし、本稿執筆時のIBM i 7.5では、Java8、Java11、Java17が選択可能である。どのバージョンを使用するかは、JAVA_HOME環境変数でシステム、もしくはジョブごとに決められる。

そして、どのバージョンが有効になっているかは、QSHELLインタープリターもしくはPASE for iシェルを開始し、java-versionとコマンドを実行することで、確認できる。

VSCodeでRPGを開発する時と同様、Javaアプリケーションはライブラリーではなく、IFS上に配置する。この時の注意点として、日本語環境の場合、UTF-8(CCSID 1208)のPASE環境でJVMが稼働していることから、デフォルトのfile.encodingはUTF-8となっている。

そのため、コンパイルするJavaファイルもUTF-8で作成する必要がある。VSCodeを使用すると自動的にCCSID1208でファイルを作成できるが、IBM i上のJavaはコンパイルできないため、QSHELLやRDiを使用する、もしくはビルド用のスクリプトを用意する必要がある。なお、コンパイル・コマンドは他のプラットフォームでのJavaと同様、javacを使用する(図表1)。

図表1 コンパイル・コマンドはjavacを利用

IBM iでJava開発を行う場合に活用するのが、「Toolbox for Java」である。これはIBM i上のデータや資源を処理するための300以上のクラス群である。

Toolbox for Javaは、OSの一部としても提供されているが、JTOpenと呼ばれるオープンソース・コミュニティ版も提供されているのが特徴である。最新のバージョンはオープンソース・コミュニティからダウンロードできるようになっているが、オープンソース・コミュニティで更新された内容は、少し遅れてPTFという形でIBMからも提供されている。

Toolbox for Javaのクラスには、IBM i上のデータを操作するためのJDBCクラスや、IBM i上のプログラムを呼び出すためのクラス、データキューを処理するためのクラスなどがある。

これらのクラスを使ってIBM i上の資源を操作する際に必要なのが、ホストサーバーである。STRSHOSTSVRコマンドを用い、IBM iにサインオンするためのサインオンサーバー、データベースにアクセスするためのデータベースサーバーなど、各用途に合わせて起動する必要がある。Javaアプリケーションはこのホストサーバーを介して、IBM i上の資源に対する処理を行う。

サーバーサイドWebアプリケーション

IBM i上で稼働するJavaとして、サーバーサイドWebアプリケーションもある。

他のプラットフォームでも提供されているWebSphere Application Server(以下、WAS)、またIBM i独自のWebアプリケーション・サーバーである統合Webアプリケーション・サーバー(IAS)および統合Webサービス・サーバー(IWS)がある。

前者のWASにはTraditionalと言われるフルバージョンと、Libertyと言われる軽量のバージョンがあり、IBM i 7.5ではWeb Enablement for IBM i(5733-WE3)というプロダクト番号で提供され、使用できる。

社内向けWebアプリケーションなど小規模な運用であれば、OSにバンドルされるもので十分活用できるが、クラスターを組むなど大規模なWebアプリケーション・サーバー構成が必要な場合は、他のプラットフォームと同じく、Passport AdvantageライセンスにてNetwork Deployment版を別途購入し、構築することもできる。

後者のIBM i独自のWebアプリケーション・サーバーは、OSの一機能として提供され、JSPやサーブレット・ベースのアプリケーションを開発するための軽量な実装となっている。 

IBM i Navigator for iやDigital Certificate Managerなどでも、内部的に使用されている。個別に導入しなくても使用でき、「IBM Web Administration for i」という独自のWebアプリケーションでサーバーの構成・管理を行う。

なお、前出のWASについても同様に管理できるので、便利なツールである。同じようにIBM i独自の統合Webサービス・サーバーについては、次の「08 IBM iのシステム連携」で詳しく説明する。

 

著者
藤村 奈穂氏

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
オープン・テクノロジー

[i Magazine 2025 Spring号掲載]

新着