All About ACS: Oracle Java SE 8 Update 261 以降には ACS 1.1.8.6 で対応

# Oracle Java SE 8 Update 261 以降には ACS 1.1.8.6 で対応

Oracle Java SE 8 Update 261 以降を利用する場合は、ACS 1.1.8.6 以降を利用してください。

## Oracle は Java SE 8 Update 261 以降、ランタイムの使用する Windows Visual Studio ライブラリ(DLL) を変更しています。

Oracle 社からは、下記の情報が公開されています。

* [Java SE 8 Update 261+ と Java SE 7 Update 281+ ランタイムの使用する Windows Visual Studio ライブラリ(DLL) の変更 (Doc ID 2686505.1)](https://support.oracle.com/knowledge/Middleware/2686505_1.html)

「ビルドに使う Microsoft Visual Studio を 2017 にしたので MSCVR100.dll を含まなくなった」、そして、下記の記述があります。

> JDKとJREに含まれる MSCVR100.dll に依存したまた、使用することを前提としている JNIを含むネイティブアプリケーションは実行に失敗する可能性があります。

## 1.1.8.5 までの acslaunch_win-XX.exe の実行に影響

acsbundle.jar をクリックで起動する場合や「java -jar acsbundle.jar」での実行には影響はありません。
「acslaunch_win-XX.exe」を利用する場合に影響します。
「.hod」などアイコンをクリックして起動する場合も acslaunch_win-XX.exe が拡張子への関連付け(ファイル・アソシエーション) として起動しますので、影響します。

下記のように「-v」を付けて acslaunch_win-XX.exe を実行すると利用する Java など詳細メッセ維持が表示されます。

```
acslaunch_win-64.exe -v
```

下記のように「awt.dll: Can't find dependent libraries」や「awt.dll: %1 is not a valid Win32 application」など「awd.dll」がエラを出力する事例が確認できています。

> C:\ACS1185\Start_Programs\Windows_x86-64>acslaunch_win-64.exe -v
Verbose mode enabled
1862:  native: 8.64.5.0 04Aug2020 00:30:13
1479: Trying to load jli...
1295:  JavaHome registry: 'C:\Program Files\Java\jre1.8.0_271'
1065:  added 'C:\Program Files\Java\jre1.8.0_271/bin/jli.dll', reason='Registry'
1777: Loaded "jli" from 'C:\Program Files\Java\jre1.8.0_271/bin/jli.dll'
1479: Trying to load jvm...
1295:  RuntimeLib registry: 'C:\Program Files\Java\jre1.8.0_271\bin\server\jvm.dll'
1065:  added 'C:\Program Files\Java\jre1.8.0_271\bin\server\jvm.dll', reason='Registry'
1777: Loaded "jni" from 'C:\Program Files\Java\jre1.8.0_271\bin\server\jvm.dll'
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jre1.8.0_271\bin\awt.dll: Can't find dependent libraries
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at java.awt.Toolkit$3.run(Unknown Source)
        at java.awt.Toolkit$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.loadLibraries(Unknown Source)
        at java.awt.Toolkit.<clinit>(Unknown Source)
        at java.awt.Color.<clinit>(Unknown Source)
        at com.ibm.iaccess.launch.AcsLaunchPad.<clinit>(AcsLaunchPad.java:318)

## 1.1.8.6 で対応

1.1.8.6 の acslaunch_win-XX.exe は、Oracle 社のこの変更に対応しています。
Oracle Java SE 8 Update 261 以降を利用する場合は、ACS 1.1.8.6 以降を利用してください。

## 1.1.8.6 以降に更新できない場合

Oracle 社のランタイム変更を受けていない Java を使ってください。

Oracle Java であれば「1.8.0_241」までになります。
AdoptOpenJDK であれば 本日 2020 年 12 月 25 日現在の Latest release である jdk8u275-b01 で問題なく稼働することを確認しています。

## 拡張・修正リストへ記載なし

ACS 1.1.8.6 の拡張・修正項目はこちらで紹介しました。

* [IBM i Access Client Solutions 1.1.8.6 利用可能。Mac ユーザーは導入に注意。起動時のロゴが新しい！](https://qiita.com/6onoda/items/b57d43af315e0f3c65c6)

しかし、今回の情報の記載はありませんでした。
修正項目として APAR が作成するのは acsbundle.jar の修正に限られるようです。
そのかわり、exe/dll の更新は「[IBM i Access Client Solutions 1.1.8.4 で PDTモード印刷で外字を印刷する](https://qiita.com/6onoda/items/33ddf707172443cba527)」のように、随時、専用サイトで公開されることがあります。

***
2020-12-25 作成
***
「All About ACS」では IBM i に対する新しいクライアント「IBM i Access Client Solutions」の情報をいろいろ提供していきます。
[記事一覧はこちら](http://qiita.com/6onoda/items/2dc925586d8d3b8644f2)で確認いたけます。

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