2010-02-02 5 views
0

Я запускаю 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

ответ

0

Я установил проблема, создав символическую ссылку на мой файл jar от

/usr/lib/jvm/java-6-openjdk/jre/lib/ext directory.