使用Ignite对象时Apache Ignite IllegalacessException from GridUnsafe

使用Ignite对象时Apache Ignite IllegalacessException from GridUnsafe,ignite,Ignite,这就是我代码中的全部内容。这只是使用Ignite的典型方式: Ignite ignite = Ignition.ignite(); 我看到的错误消息是: WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.ignite.internal.util.GridUnsafe$2 (file:/C:/Users/.../.m2/repo

这就是我代码中的全部内容。这只是使用Ignite的典型方式:

Ignite ignite = Ignition.ignite();
我看到的错误消息是:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ignite.internal.util.GridUnsafe$2 (file:/C:/Users/.../.m2/repository/org/apache/ignite/ignite-core/2.7.0/ignite-core-2.7.0.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of org.apache.ignite.internal.util.GridUnsafe$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.apache.ignite.internal.util.IgniteUtils.<clinit>(IgniteUtils.java:795)
    at org.apache.ignite.internal.IgnitionEx.<clinit>(IgnitionEx.java:209)
    at org.apache.ignite.Ignition.ignite(Ignition.java:489)
    at distributedjobexecutor.App.<init>(App.java:19)
    at distributedjobexecutor.App.main(App.java:39)
Caused by: java.lang.RuntimeException: jdk.internal.misc.JavaNioAccess class is unavailable.
    at org.apache.ignite.internal.util.GridUnsafe.javaNioAccessObject(GridUnsafe.java:1453)
    at org.apache.ignite.internal.util.GridUnsafe.<clinit>(GridUnsafe.java:112)
    ... 5 more
Caused by: java.lang.IllegalAccessException: class org.apache.ignite.internal.util.GridUnsafe cannot access class jdk.internal.misc.SharedSecrets (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @2ac273d3
    at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:360)
    at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:589)
    at java.base/java.lang.reflect.Method.invoke(Method.java:556)
    at org.apache.ignite.internal.util.GridUnsafe.javaNioAccessObject(GridUnsafe.java:1450)
    ... 6 more
警告:发生了非法的反射访问操作
警告:org.apache.ignite.internal.util.GridUnsafe$2(文件:/C:/Users/...m2/repository/org/apache/ignite/ignite-core/2.7.0/ignite-core-2.7.0.jar)对java.nio.Buffer.address字段的非法反射访问
警告:请考虑向Orac.Apache .Ingig.No.U.L.GIDunnForm 2美元的维护者报告。
警告:使用--invalize access=warn以启用对进一步非法访问操作的警告
警告:所有非法访问操作将在未来版本中被拒绝
线程“main”java.lang.ExceptionInInitializeError中出现异常
位于org.apache.ignite.internal.util.IgniteUtils。(IgniteUtils.java:795)
位于org.apache.ignite.internal.IgnitionEx.(IgnitionEx.java:209)
位于org.apache.ignite.Ignition.ignite(Ignition.java:489)
在distributedjobexecutor.App.(App.java:19)
位于distributedjobexecutor.App.main(App.java:39)
原因:java.lang.RuntimeException:jdk.internal.misc.JavaNioAccess类不可用。
位于org.apache.ignite.internal.util.gridsafe.javaNioAccessObject(gridsafe.java:1453)
位于org.apache.ignite.internal.util.GridUnsafe.(GridUnsafe.java:112)
... 还有5个
原因:java.lang.IllegalAccessException:class org.apache.ignite.internal.util.GridSafe无法访问类jdk.internal.misc.SharedSecrets(在模块java.base中),因为模块java.base没有将jdk.internal.misc导出到未命名模块@2ac273d3
位于java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:360)
在java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:589)
位于java.base/java.lang.reflect.Method.invoke(Method.java:556)
位于org.apache.ignite.internal.util.GridUnsafe.javaNioAccessObject(GridUnsafe.java:1450)
... 还有6个

为什么我会收到这个消息,我该如何解决这个问题?我使用的是Java jdk-10.0.1。

这个问题来自Java 9中引入的模块访问控制系统

要解决此问题,请使用以下JVM参数:

--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
可能重复的