BBoard stellt seinen Betrieb ein, Details hier
www.meckerwiese.de.vu
Forum für den Programmierwettbewerb 2007
 

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

java.lang.LinkageError: Class xy/xy violates loader



 
Neues Thema eröffnen   Neue Antwort erstellen    www.meckerwiese.de.vu Foren-Übersicht -> Fragen zum Wettbewerb
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Basti
Neuling



Geschlecht: Geschlecht:männlich
Anmeldungsdatum: 16.02.2007
Beiträge: 16
Wohnort: Schönebeck

BeitragVerfasst am: 05.03.2007, 22:39    Titel: java.lang.LinkageError: Class xy/xy violates loader Antworten mit Zitat

Hi Leute,
ich habe hier gerade ne hübsche Exception heraufbeschworen, die keine ist.

Folgender Sachverhalt:
Mein Hund besteht aus verschiedenen Klassen.
Meine eigentliche KI heißt SKDDog und ordnet beim Erzeugen jedem
Hund das "Gehirn" aus der Klasse SKDDogAI zu (mit jeweiligen Parametern).
Da die Hunde aber alle etwas gemeinsam haben, speichere ich diese Gemeinsamkeit in der Klasse SKDDog als Variable.
Damit jeder Hund nun auf diese Gemeinsamkeiten zugreifen kann,
übergebe ich beim Erzeugen der jeweiligen Instanz von SKDDogAI die Instanz SKDDog - als parent/übergeordnete Klasse sozusagen.
Dadurch kann ich nun über meine variable parent.gemeinsamkeit1 etc. auf die gemeinsamen Dinge zugreifen.

Das Problem ist Folgendes:
Wenn ich die sheep.jar ausführe, funktioniert alles bestens.
Wenn ich das Projekt aber über Eclipse starte / debugge, komme ich bis zum Start Button. Sobald dieser geklickt wird, kommt folgende Exception und die Simulation fängt gar nicht erst an zu laufen:

Zitat:
Exception in thread "Timer-0" java.lang.LinkageError: Class SKDDog/SKDDog violates loader constraints
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at SKDDog.SKDDogAI.think(SKDDogAI.java:35)
at app.logic.Dog.think(Dog.java:81)
at app.logic.Field.step(Field.java:306)
at app.logic.GameRunner$1.run(GameRunner.java:51)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)


Das Problem muss mit dem Zugriff auf Variablen aus der anderen Klasse zusammenhängen, denn anfangs konnte ich das zu Testzwecken weglassen und dann funktionierte es.
Allerdings finde ich keine andere Möglichkeit diesen Zugriff zu realisieren.
Das wirklich störende ist halt, dass ich dadurch nicht mehr mit Eclipse debuggen kann. Aber Laufen tut es halt.
Hat jemand eine Lösung für das Problem? Ist das vielleicht nur so eine Art Sicherheitshinweis in Eclipse, den man irgendwie abschalten kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
zet
Forumsjunki




Anmeldungsdatum: 05.02.2007
Beiträge: 85

BeitragVerfasst am: 07.03.2007, 09:07    Titel: Antworten mit Zitat

Kannst du mir deine KI als ZIP mal schicken? Dann kann ich das mal selber austesten. => eike 'at' cube3d.de

Könnt nur ein bisschen dauen (1-2 tage)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Micha
Neuling




Anmeldungsdatum: 07.02.2007
Beiträge: 9

BeitragVerfasst am: 07.03.2007, 16:51    Titel: Antworten mit Zitat

Ähem ich glaube du hast beim Konfiguren des Run-dingens nicht an die Anleitung gehalten, hatte nämlich den gleichen Fehler, dass er / anstatt des üblichen . benutzt (SKDDog/SKDDog müsste SKDDog.SKDDog).

Funktionierte dann aber ohne Probleme nachdem ich das Run nochmal wie in der Anleitung beschrieben, neu eingerichtet habe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Basti
Neuling



Geschlecht: Geschlecht:männlich
Anmeldungsdatum: 16.02.2007
Beiträge: 16
Wohnort: Schönebeck

BeitragVerfasst am: 09.03.2007, 17:07    Titel: Antworten mit Zitat

Hi, ich habe das Projekt jetzt nochmal neu in Eclipse eingebunden und siehe an, es funktioniert.
Da muss ich wohl etwas gepennt haben, als ich das zum ersten Mal eingebunden habe. Mit den Augen rollen
Naja egal - danke für den Tipp Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Senior Sanchez
Forumsjunki




Anmeldungsdatum: 07.02.2007
Beiträge: 61

BeitragVerfasst am: 22.03.2007, 12:19    Titel: Antworten mit Zitat

Also ich nutze kein Eclipse, aber bei mir tritt der Fehler auch auf.
Wo muss man da etwas umkonfigurieren, dass anstatt / nun . benutzt wird?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Basti
Neuling



Geschlecht: Geschlecht:männlich
Anmeldungsdatum: 16.02.2007
Beiträge: 16
Wohnort: Schönebeck

BeitragVerfasst am: 22.03.2007, 14:55    Titel: Antworten mit Zitat

Umkonfigurieren würde ich sein lassen, das habe ich auch erst versucht aber endete im Chaos.
Mach dir vorsichtshalber eine Kopie deines KI Ordners und dann löscht du das gesamte Projekt aus deiner Programmierumgebung.

Danach fügst du deine KI genau wie unter
http://digger.cs.uni-magdeburg.de/~decker/schaf/index.php/Dokumentation/Installation
beschrieben wieder ein. ABER: Die ersten beiden Passagen unter der Überschrift "Entwickeln in Eclipse" überspringst du.
Weiter unten beginnt ein Abschnitt mit "Man kann auch das Spiel aus Eclipse heraus laden, indem man [...]" - genau da fängst du erst an. Ignorier einfach, dass da Eclipse steht und versuch in deinem Programm ähnliche Beschriftungen zu finden Winken

Bei mir ging es danach ohne Probleme.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Senior Sanchez
Forumsjunki




Anmeldungsdatum: 07.02.2007
Beiträge: 61

BeitragVerfasst am: 22.03.2007, 16:10    Titel: Antworten mit Zitat

Hmm, so recht hilft mir das auch nicht weiter. IDEA (meine IDE) ist halt doch nen Stückchen anders.

Das scheint doch grundsätzlich irgendwie ein Classpath-Problem zu sein. Angeblich tritts auf wenn ein und dieselbe Klasse von zwei verschiedenen Orten geladen wird, aber das kann ich glaube ich schon ausschließen.

Was verursacht nun diese Probleme?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Senior Sanchez
Forumsjunki




Anmeldungsdatum: 07.02.2007
Beiträge: 61

BeitragVerfasst am: 23.03.2007, 11:52    Titel: Antworten mit Zitat

Ich habe gerade jetzt eine Lösung gefunden, die funktioniert, die ich aber eben trotzdem seltsam finde Winken

Bei meiner IDE habe ich einfach bei der Run Configuration mittels VM Parameter den Classpath so beschränkt, dass er nur auf sheep.jar zeigt.
Diese Lösung ist zwar ziemlich dirrrrty, aber scheinbar funktioniert sie.

Das Problem scheint dabei folgendes zu sein: Es gibt wohl zwei konkurrierende Classloader. Einer direkt von der JVM die in der IDE läuft und der andere von app.Sheep. Der erstgenannten scheint nun die Klassen in seinem Classpath zu laden. Danach lädt dann app.Sheep selber eigene Klassen und da meine Klasse jetzt anscheinend nochmal geladen wird, aber diesmal von einem anderen Classloader, kommt es wohl zu dieser Fehlermeldung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    www.meckerwiese.de.vu Foren-Übersicht -> Fragen zum Wettbewerb Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Exception in thread "Timer-0&quo... Anonymous Fragen zum Wettbewerb 1 03.04.2007, 07:51

Tags
Hund



Powered by phpBB 2.0.23 © 2001, 2002 phpBB Group

BBoard.de bietet Ihnen ein Kostenloses Forum mit zahlreichen tollen Features

Impressum | Datenschutz