Я запускаю java с агентом.
Когда мое приложение не использует графический интерфейс (swing), он работает отлично под обоими JRE, упомянутыми ниже.
Когда он использует графический интерфейс (swing), при использовании JRE: HotSpot TM TM 64 Bits Server VM (build 1.6.0-b105, смешанный режим) работает нормально.
Но с JRE:/USR/Библиотека/JVM/Java-6-OpenJDK, он производит исключение java.lang.NoClassDefFoundError брошенный org.GNOME.Accessibility.JavaBridge $ AccessQueue
Без моего агента или с агентом, но применяется к консольному приложению, он отлично работает для обоих JRE.
Исключение говорит, что один из классов моего агента не найден: **** java.lang.NoClassDefFoundError: MyPack/myagent/MyClass ****
однако этот класс уже был загружен: * *** [Загружено mypack.myagent.MyClass из файла: /home.owner/Tests/AGENT.jar] ****
?????
Почему JRE пытается загрузить такой же класс еще раз? и почему он не может найти его на этот раз?
(Все классы агента присутствует внутри банка файл со всеми зависимостями)
Ниже приводится выдержка из вывода. Используется опция командной строки -verbose.
[Открыт /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
[Загруженный java.lang.Object из/USR/Lib/JVM/Java -6-OpenJDK/JRE/Библиотека/rt.jar]
[Загруженный mypack.myagent.Main из файла: /home/owner/Tests/AGENT.jar
[Загруженный java.lang.instrument.ClassFileTransformer от/usr/lib/jvm/java-6-openjdk/jre/lib
/rt.jar]
Запуск агента ...
[Загруженный java.net.URLClassLoader $ 2 из /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
[Загруженный org.apache.log4j.CategoryKey из файла: /home/owner/Tests/AGENT.jar]
[Загруженный mypack.myagent.MyClass из файла: /home.owner/Tests/AGENT.jar ]
[Загружено org.w3c.dom.Node из /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
[Загружено java.io.UnsupportedEncodingException из/USR/Lib/JVM/Java-6-OpenJDK/JRE/LIB
/rt.jar]
[Загруженный sun.net.www.protocol.jar.URLJarFile $ URLJarFileEntry из/USR/Библиотека/JVM/Java-
6-OpenJDK/JRE/Библиотека/rt.jar]
[Загруженный sun.net.www.protocol.jar.JarURLConnection $ JarURLInputStream из/USR/Lib/JVM/Java -
6-openjdk/jre/lib/rt.jar]
[Загруженный com.sun.org.apache.xerces.internal.util.SecurityManager из/USR/Lib/JVM/Java-
6-OpenJDK/JRE/Библиотека/rt.jar]
[ Загруженный sun.management.RuntimeImpl от /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
Здравствуйте от агента ...
[Загруженный testpackage. GuiTest из файла: ...
[Загруженный java.awt.LayoutManager от /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
[грузу java.awt.image.ImageObserver из/USR/Библиотека/JVM/Java-6-OpenJDK/JRE/Библиотека/rt.jar]
[Загруженный java.awt.MenuContainer от /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
. , ,
[Загруженный sun.awt.X11.XEvent из /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
[Загруженный org.GNOME.Accessibility.JavaBridge из файла : /usr/share/java/gnome-java-bridge.jar]
[Загружено java.awt.event.FocusListener из /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar ]
[Загруженный org.GNOME.Accessibility.JavaBridge $ AccessQueue из файла:/USR/доли/Java/гномы
ява-bridge.jar]
[Загруженный java.lang.InstantiationException от /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]
Исключение в потоке "основного" java.lang.NoClassDefFoundError: MyPack/myagent/МойКласс
на org.GNOME.Accessibility.JavaBridge. (JavaBridge.java)
на sun.reflect.NativeConstructorAccessorImpl.newInstance0 (нативный метод)
т sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
на java.lang.reflect.Constructor.newInstance (Конструктор.Java: 532)
на java.lang.Class.newInstance0 (Class.java:372)
на java.lang.Class.newInstance (Class.java:325)
на java.awt .Toolkit.loadAssistiveTechnologies (Toolkit.java:786)
на java.awt.Toolkit.getDefaultToolkit (Toolkit.java:874)
на java.awt.Window.getToolkit (Window.java:1170)
в java.awt.Window.init (Window.java:400)
на java.awt.Window (Window.java:438)
на java.awt.Frame (Frame.java..: 419)
на javax.swing.JFrame. (JFrame.java:224)
на testpackage.GuiTest. (GuiTest.java:52)
на testpackage.GuiTest.main (GuiTest.java : 39)
Вызванный: java.lang.ClassNotFoundException: mypack.myagent.MyClass
в java.net.URLClassLoader $ 1.Run (URLClassLoader.java:217)
в java.security.AccessController.doPrivileged (Родной метод)
на java.net.URLClassLoader.findClass (URLClassLoader.java:205)
на java.lang.ClassLoader.loadClass (ClassLoader.java:323)
в java.lang.ClassLoader.loadClass (ClassLoader.java:268)
на java.lang.ClassLoader.loadClassInternal (ClassLoader.java:336)
... подробнее 16