このマニュアルは現在作成中で、未完成です。
改善にご協力いただければ幸いです。ご協力いただける場合は、READMEをご覧ください。

26 Java 9 サポート

これは、初期の Java 9 以降のサポートを使用する際の既知の問題、注意事項、および回避策のリストです。 Java 9 のサポートはまだ完成には程遠いですが、コア機能は、いくつかの警告やメッセージが表示されるだけで動作するようです。

1.26 既知のライブラリの注意事項

Ratpack を Java 9 でシームレスに実行するための既知のバージョン競合または要件を以下に示します。

2.26 既知の問題

以下は、現時点で Java 9 と Ratpack の基盤となるコンポーネントによって発生する問題です。それぞれの場合に回避策が提供されます

3.26 Java 9 の既知のエラー/警告メッセージ

以下は、Java 9 以降で出力される、予期されるメッセージです。

警告: 不正なリフレクティブアクセス操作が発生しました
警告: com.google.inject.internal.cglib.core.$ReflectUtils$1 による不正なリフレクティブアクセス (ファイル:[ユーザー Gradle キャッシュディレクトリ]/modules-2/files-2.1/com.google.inject/guice/[バージョンハッシュ]/[guice バージョン jar]])
警告: com.google.inject.internal.cglib.core.$ReflectUtils$1 のメンテナーに報告することを検討してください
警告: –illegal-access=warn を使用して、今後の不正なリフレクティブアクセス操作に関する警告を有効にします
警告: 今後のリリースでは、すべての不正なアクセス操作が拒否されます

11:04:44.477 [main] DEBUG i.n.u.i.PlatformDependent0 - -Dio.netty.noUnsafe: false
11:04:44.477 [main] DEBUG i.n.u.i.PlatformDependent0 - Java バージョン: 11
11:04:44.479 [main] DEBUG i.n.u.i.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: 利用可能
11:04:44.479 [main] DEBUG i.n.u.i.PlatformDependent0 - sun.misc.Unsafe.copyMemory: 利用可能
11:04:44.480 [main] DEBUG i.n.u.i.PlatformDependent0 - java.nio.Buffer.address: 利用可能
11:04:44.483 [main] DEBUG i.n.u.i.PlatformDependent0 - ダイレクトバッファコンストラクタ: 利用不可
java.lang.UnsupportedOperationException: リフレクティブ setAccessible(true) 無効
at io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31)
at io.netty.util.internal.PlatformDependent0$4.run(PlatformDependent0.java:224)
at java.base/java.security.AccessController.doPrivileged(ネイティブメソッド)
at io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:218)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:212)
at io.netty.util.internal.PlatformDependent.(PlatformDependent.java:80)
at io.netty.util.ConstantPool.(ConstantPool.java:32)
at io.netty.util.AttributeKey$1.(AttributeKey.java:27)
at io.netty.util.AttributeKey.(AttributeKey.java:27)
at ratpack.core.server.internal.DefaultRatpackServer.(DefaultRatpackServer.java:69)
at ratpack.core.server.RatpackServer.of(RatpackServer.java:81)
at ratpack.core.server.RatpackServer.start(RatpackServer.java:92)
at ratpack.groovy.GroovyRatpackMain.main(GroovyRatpackMain.java:38)
11:04:44.484 [main] DEBUG i.n.u.i.PlatformDependent0 - java.nio.Bits.unaligned: 利用可能、true
11:04:44.485 [main] DEBUG i.n.u.i.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): 利用不可
java.lang.IllegalAccessException: クラス io.netty.util.internal.PlatformDependent0$6 は、モジュール java.base が名前のないモジュール @366647c2 に jdk.internal.misc をエクスポートしないため、クラス jdk.internal.misc.Unsafe (モジュール java.base 内) にアクセスできません
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
at java.base/java.lang.reflect.Method.invoke(Method.java:558)
at io.netty.util.internal.PlatformDependent0$6.run(PlatformDependent0.java:334)
at java.base/java.security.AccessController.doPrivileged(ネイティブメソッド)
at io.netty.util.internal.PlatformDependent0.(PlatformDependent0.java:325)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:212)
at io.netty.util.internal.PlatformDependent.(PlatformDependent.java:80)
at io.netty.util.ConstantPool.(ConstantPool.java:32)
at io.netty.util.AttributeKey$1.(AttributeKey.java:27)
at io.netty.util.AttributeKey.(AttributeKey.java:27)
at ratpack.core.server.internal.DefaultRatpackServer.(DefaultRatpackServer.java:69)
at ratpack.core.server.RatpackServer.of(RatpackServer.java:81)
at ratpack.core.server.RatpackServer.start(RatpackServer.java:92)
at ratpack.groovy.GroovyRatpackMain.main(GroovyRatpackMain.java:38)
11:04:44.485 [main] DEBUG i.n.u.i.PlatformDependent0 - java.nio.DirectByteBuffer.(long, int): 利用不可
11:04:44.485 [main] DEBUG i.n.u.internal.PlatformDependent - sun.misc.Unsafe: 利用可能