Java -verbose не дает местоположение файла для каждого класса

StackOverflow https://stackoverflow.com/questions/6058133

  •  15-11-2019
  •  | 
  •  

Вопрос

Мы пытаемся отладить некоторые средние проблемы с классовым загрузкой с нашими именами (WebSphere Application Server).

Для этого мы предоставили опцию -Вербоз: класс, чтобы увидеть, какой класс был загружен, где от.

для большинства классов, которые мы получаем, как

Loading class <some class> from <some jar file>
.

Но для некоторых классов (включая то, что вызывает проблемы) только

Loading class <some class>
.

печатается.

Откуда это делается?Получите их прямо из ада или почему IBM защищает свою реальную личность?

Обновление: Класс, который мы ищем, это javax.xml.ws.service, который должен действительно прийти от RT.jar (мы получаем java.lang.veryifyerror на нем)

Это было полезно?

Решение

If you are interested in which files are read by the JVM, you could use operating system tools like strace, dtrace, or lsof to observe the files read by a process. Though that won't tell you which classes where loaded from that file.

Are you aware of the IBM JDK Diagnostics Guide? It contains a chapter "Class-loader diagnostics".

Другие советы

Maybe the class you want to load does not come from an jar? Maybe it's generated on the fly? The name of the class might contain a hint ...

If the output looks like

[Loaded $Proxy2 by instance of java.lang.reflect.Proxy]

... then your classes are autogenerated

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top