Я провел несколько тестов, используя встроенный в Spring Boot Tomcat, и строка __JVM_DefineClass__
, используемая в качестве источника класса, не имеет ничего общего с версией JVM. Это произошло в журналах во время моих тестов из-за:
- внутренних классов , таких как one , которые вы упомянули, или
- dynamici c сгенерированные классы , например
jdk.internal.reflect.GeneratedConstructorAccessor1
Мне кажется, что это связано с тем, что URL-адрес исходного местоположения не был доступен для ClassLoader. Ниже приведен фрагмент исходного кода OpenJDK 11, отвечающего за определение строки __JVM_DefineClass__
.
// common code for JVM_DefineClass() and JVM_DefineClassWithSource()
static jclass jvm_define_class_common(JNIEnv *env, const char *name,
jobject loader, const jbyte *buf,
jsize len, jobject pd, const char *source,
TRAPS) {
if (source == NULL) source = "__JVM_DefineClass__";
...
OpenJDK / jdk / jdk11