NoClassDefFoundError: Could not initialize,class com.google.inject.internal.cglib.core.$ReflectUtils

Remi Forax forax at univ-mlv.fr
Mon Sep 19 13:27:56 UTC 2016


I wonder what is the best way to fix the code of Guice ?

Use Unsafe.defineAnonymousClass ?

cheers,
Rémi

----- Mail original -----
> De: "Alan Bateman" <Alan.Bateman at oracle.com>
> À: "Dawid Weiss" <dawid.weiss at gmail.com>
> Cc: "jigsaw-dev" <jigsaw-dev at openjdk.java.net>
> Envoyé: Lundi 19 Septembre 2016 14:47:58
> Objet: Re: NoClassDefFoundError: Could not initialize,class	com.google.inject.internal.cglib.core.$ReflectUtils

> On 19/09/2016 05:35, Dawid Weiss wrote:
> 
>> Yes, it prints:
>>
>> java.lang.reflect.InaccessibleObjectException: Unable to make
>> protected final java.lang.Class
>> java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
>> throws java.lang.ClassFormatError accessible: module java.base does
>> not "exports private java.lang" to unnamed module @4527468c
>> at
>> java.base/jdk.internal.reflect.Reflection.throwInaccessibleObjectException(Reflection.java:414)
>> at
>> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:196)
>> at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:192)
>> at java.base/java.lang.reflect.Method.setAccessible(Method.java:186)
>> at
>> com.google.inject.internal.cglib.core.$ReflectUtils$1.run(ReflectUtils.java:52)
>> at java.base/java.security.AccessController.doPrivileged(Native Method)
>> at
>> com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:42)
>> at
>> com.google.inject.internal.cglib.reflect.$FastClass$Generator.getProtectionDomain(FastClass.java:73)
>> [truncated]
>>
> I assume running with `--add-exports-private
> java.base/java.lang=ALL-UNNAMED` will allow you get past this.
> 
> -Alan


More information about the jigsaw-dev mailing list