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)。

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のシステム連携」で詳しく説明する。

著者
藤村 奈穂氏
日本アイ・ビー・エム システムズ・エンジニアリング株式会社
オープン・テクノロジー
新・IBM i入門ガイド[開発編]
01 IBM iの開発環境
02 IBM iの開発環境選択基準
03 IBM iの開発言語
04 IBM iの基礎[CL設計・開発]
05 IBM iの基礎[データベース]
06 IBM iの基礎[RPG開発]
07 IBM iの基礎[Java開発]
08 IBM iのシステム連携
09 IBM iの新しいアプリケーション例
10 開発編 FAQ
[i Magazine 2025 Spring号掲載]