3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

All About ACS: IBM i Access Client Solutions 5250で画面レイアウトが崩れる

Last updated at Posted at 2019-06-24

ACS の 5250 表示で画面レイアウトが崩れる

ACS の 5250 表示で画面レイアウトが崩れるケースが発生しています。こんな感じになります。

image.png

入力項目が下線に対して正しくないだけでなく、ちょっと見にくいですが、縦にそろっているはずのピリオドが揃っていません。

IBM は Java の動きによるもので ACS では対応できないと文書で表明

これに対して IBM から文書が出ました。

Why does IBM i ACS 5250 emulator character alignment vary with different versions of Java?

ACS は 画面描画を Java に任せているので ACS では対応できない、Java 側での対応が必要とのことです。

the IBM i Access Client Solutions (IBM i ACS) 5250 Emulator does not have direct control of this behavior, so any code changes address this would have to be pursued with the Java provider.

発生条件

下記の3つの条件が重なるとき、発生するのを確認しています。ただし、これ以外にも発生する可能性はあります。

ACS で「フォント拡大縮小」を「はい」にしている

image.png

image.png

Windows のディスプレイで拡大縮小が100%でない

image.png

Java が 9 以上

2020-04-25 追記:フォントによってはJava 8でも発生します。下部に追記しました

Java 8 では発生しません。Oracle/Open問わず Java 9 以降で発生します。
Java 9 から Windows のディスプレイで拡大縮小への対応するようになりました。前項の発生条件を考えると、このHiDPI対応が完全でないのかもしれません。

Windows HiDPI Graphics support

回避方法

上記の条件で発生しているのであれば、どれか一つを変えてやれば、回避できます。

ACS で「フォント拡大縮小」を「いいえ」にする

ただし、横がスカスカになったりします。

ACS で「固定フォント」を「はい」にする 2020-04-25 追記

ただし、セッションウインドウのサイズを変えても、文字の大きさが変わらなくなります。

Windows のディスプレイで拡大縮小が100%にする

Windows環境全体の変更であり、高解像度の環境では他のアプリケーションの表示・文字が小さくなりすぎるかもしれません。

Java を OpenJDK 系の Java 8 にする

Java プロバイダーによっては OpenJDK ベースのJava 8 を長期サポートしているものもあります。
例えば AdoptOpenJDK の場合、少なくとも2023年9月まで Java 8 をサポートすると言っています。
ただし、こちらで呼べたように、横向き用紙に画面印刷やJPS印刷ができません。

Oracle 8 を使う

一番制約のない回避策はOracle 8 を使うことです。
Oracle が有償化したのは新規ダウンロードで、以前にダウンロードしたものは使い続けられるそうです。
セキュリティが心配なら、Oracle と有償サポート契約を結ぶこともできます。
下記の方法で、古いJavaの安全度を高めることもできます。

Java を ACS 専用にして安全にする

2020-04-25 追記: Oracle Java 8 でもフォントによっては発生することを確認

Oracle Java 8 でもフォントによっては発生することを確認しました。

Monospaced や MSゴシックなど標準的なフォントを使っている場合、Java 8 では発生せずに Java 9 以降で発生するため、Java 9 以降であることが条件のひとつと思っていましたが、フォントによっては Oracle Java 8 でも発生することが確認しました。

問題のフォントは Google と Adobe が共同で行っているオープンなフォントの中で漢字が使え DBCS:SBCS の幅が 2:1 の等倍フォントである「Noto Sans CJK Nono JP」です。
Google Noto Fonts から「JP」で検索される「Noto Sans CJK JP」のなかの NotoSansMonoCJKjp-Regular.otf を導入してテストしました。

ACS 1.1.8.4 を Oracle Java 8 u201 で動かしています。

image.png

フォント設定は、こちら。

image.png

ディスプレイ設定で 150% の拡大を設定しています。

image.png

WRKACTJOB のプロンプトで見ると、レイアウトの崩れが確認できます。

image.png

今回の場合、下記の回避策では改善されませんでした。

  • ACS の「フォント拡大縮小」を「いいえ」に設定
  • Windows のディスプレイ設定で 拡大縮小を 100% に設定

改善されたのは、下記の設定です。この場合、ディスプレイ設定で 拡大縮小が 150% に設定されていても改善されました。
ただし、セッションウインドウのサイズを変えても、文字の大きさが変わらない設定です。

  • 「固定フォント」を「はい」に設定

2019-07-12 Java を ACS 専用にして安全にするの情報とリンクを追加
2020-04-25 Java 8での発生を追記。回避策として固定フォントの利用を追記


「All About ACS」では IBM i に対する新しいクライアント「IBM i Access Client Solutions」の情報をいろいろ提供していきます。
記事一覧はこちらで確認いたけます。

許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。


3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?