2010-02-02 7 views
0

Je lance java avec un agent.

Lorsque mon application n'utilise pas l'interface graphique (swing), elle fonctionne correctement sous les deux JRE mentionnés ci-dessous. Quand il utilise l'interface utilisateur graphique (swing), lorsqu'il utilise JRE: HotSpot (TM) 64 Bits Server VM (build 1.6.0-b105, mode mixte), il fonctionne correctement.

Mais avec JRE:/usr/lib/jvm/java-6-openjdk, il produit exception java.lang.NoClassDefFoundError lancée par org.GNOME.Accessibility.JavaBridge $ accessQueue

Sans mon agent ou avec un agent mais appliqué à une application de console, il fonctionne bien pour les deux JRE.

L'exception indique que l'une de mes classes de l'agent ne se trouve pas: **** java.lang.NoClassDefFoundError: mypack/myAgent/MyClass ****

cependant cette classe était déjà chargé: * *** [mypack.myagent.MyClass à partir du fichier: /home.owner/Tests/AGENT.jar] ******* Pourquoi JRE tente-t-il de charger à nouveau la même classe? et pourquoi il ne peut pas le trouver cette fois?

(Toutes les classes d'agents sont présents fichier jar à l'intérieur avec toutes leurs dépendances)

Ci-dessous l'extrait de la production. L'option de ligne de commande -verbose est utilisée.


[Ouvert /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

[java.lang.Object chargé à partir de/usr/lib/jvm/java -6-openjdk/jre/lib/rt.jar]

[de mypack.myagent.Main Chargé du fichier: /home/owner/Tests/AGENT.jar

[Chargé java.lang.instrument.ClassFileTransformer à partir de/usr/lib/jvm/java-6-openjdk/jre/lib

/rt.jar]

Lancement agent de ...

[java.net.URLClassLoader Loaded 2 $ de /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

[org.apache.log4j.CategoryKey chargé du fichier: /home/owner/Tests/AGENT.jar]

[Chargé mypack.myagent.MyClass fichier: /home.owner/Tests/AGENT.jar ]

[Chargé org.w3c.dom.Node from /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

[Chargé java.io.UnsupportedEncodingException de/usr/lib/jvm/java-6-openjdk/jre/lib

/rt.jar]

[Loaded sun.net.www.protocol.jar.URLJarFile $ URLJarFileEntry de/usr/lib/jvm/java-

6-openjdk/jre/lib/rt.jar]

[Loaded sun.net.www.protocol.jar.JarURLConnection $ JarURLInputStream de/usr/lib/jvm/java -

6-openjdk/jre/lib/rt.jar]

[com.sun.org.apache.xerces.internal.util.SecurityManager chargé à partir de/usr/lib/JVM/java-

6-openjdk/jre/lib/rt.jar]

[ chargé sun.management.RuntimeImpl de /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

Bonjour Agent ...

[chargé testpackage. GuiTest from file: ...

[Loaded java.awt.LayoutManager de /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

[java.awt.image.ImageObserver chargé à partir de/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

[java.awt.MenuContainer chargé à partir de /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

. . .

[sun.awt.X11.XEvent chargé de /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

[org.GNOME.Accessibility.JavaBridge Chargé de fichier : /usr/share/java/gnome-java-bridge.jar]

[Loaded java.awt.event.FocusListener from /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar ]

[Loaded org.GNOME.Accessibility.JavaBridge $ accessQueue fichier:/usr/share/java/gnome-

java-bridge.jar]

[java.lang.InstantiationException chargé de /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar]

Exception dans le thread "principal" java.lang.NoClassDefFoundError: mypack/myAgent/MyClass

à org.GNOME.Accessibility.JavaBridge. (JavaBridge.java)

à sun.reflect.NativeConstructorAccessorImpl.newInstance0 (native Method)

un t sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)

à java.lang.reflect.Constructor.newInstance (Constructeur.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)

Causée par: java.lang.ClassNotFoundException: mypack.myagent.MyClass

à java.net.URLClassLoader 1.run $ (URLClassLoader.java:217)

à java.security.AccessController.doPrivileged (Méthode native)

à 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 plus

Répondre

0

I fixe le problème en créant un lien symbolique à mon fichier jar de

/usr/lib/jvm/java-6-openjdk/jre/lib/ext répertoire.