弊社製品のJava9対応について
パッケージ製品開発担当の大です。こんにちは。
2017/11/27のリビジョンアップで、シーオーリポーツ for Java V2、帳票クリエータ V3 for JavaはJava9に対応しました。Java9で動作させる場合には最新版にアップデートしてください。
以下、Java9で動作させる場合の注意点を記します。
JAI非対応(シーオーリポーツ・帳票クリエータ共通)
Java8以前で動作させる場合、PDF出力時およびTIFF出力時に使用する画像ライブラリはJAIかJAI Image I/O Toolsを選択できました。Java9で動作させる場合は、JAIは非対応になりますのでご注意ください。
Java9で非推奨になった機能(帳票クリエータ)
帳票クリエータは、Java9で非推奨となった機能のいくつかを使用しています。これらの機能を使う場合、Java9の実行時オプション「--add-modules」でモジュールを追加する必要があります(→参考)。
- 帳票管理サーバ2011へのアップロード機能を使用する場合
帳票クリエータの帳票管理サーバ2011へのアップロード機能は内部でjava.xml.wsモジュールを使用しています。--add-modules java.xml.ws
を指定してください。
- 1.を使用しないが、帳票クリエータのWEB APIを使用する場合
帳票クリエータのWEB APIは内部でjava.xml.bindモジュールを使用しています。--add-modules java.xml.bind
を指定してください。
- 1.2.を使用しないが、メール送信機能を使用する場合
帳票クリエータのメール送信機能は、内部でJavaMail(1.4以上)を使用していますが、JavaMailは内部でjava.activationモジュールを使用しています。--add-modules java.activation
を指定してください(→参考)。または、スタンドアロン版のJAF 1.2を使うという方法もあるようです。
- 1.2.3.どれも使用しない場合
モジュールの追加は必要ありません。
extフォルダ
Java9では ${java.home}/lib/ext が廃止されました。ここにシーオーリポーツ・帳票クリエータのモジュールを配置していた場合は、別の場所に移動する必要があります。
帳票管理サーバ for Java
申し訳ございませんが、帳票管理サーバ for Javaは現在のところJava9に対応しておりません。
おまけ
弊社製品と直接は関係ないんですけど、以下のテストをWindowsのJava9で実行するとこけます。Java8以前だと通ります。
@Test public void test() { File parent = new File("C:"); assertThat(new File(parent, "a").toString(), is("C:\\a")); }
java.lang.AssertionError:
Expected: is "C:\a"
but: was "C:a"
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.Assert.assertThat(Assert.java:923)
at FileConstructorTest.test(FileConstructorTest.java:13)
...(以下略)
Java9対応作業中にみつけたのでバグ報告したのですけど、Java8以前の動作が間違ってたんだそうでCLOSEされてしまったので、ひっそりこのへんで供養しときます。