Folgendes Problem habe ich, so genau kann ich mir das auch nicht erklären:
Fehlermeldung:
Die Zeile BotList.java:17 ist folgende:
Krachen tut es also beim Aufruf Bot.class
Warum? Ich tippe auf ein Classloader Problem, kann es aber nicht eingrenzen.
Hat jemand einen Vorschlag, wie ich da rangehen soll?
Noch verwirrender ist aber folgendes. Mein Programm kann sogenannte Addons laden.
Gegeben seien Addon A und Addon B.
Man kann nun Prioritäten vergeben, welches Addon bevorzugt wird.
Steht Addon A, das Hauptaddon vor Addon B, so läuft der Code durch, andersrum aber nicht.
Die Addons bestehen aber im Prinzip rein aus XML Dateien, die geladen werden.
Code:
public class Handbook extends ResourceBundle {
/** Erzeugt das Bundle mit einer bestimmten Lokalisierung.
*
* @param locale Die Lokalisierung.
*/
public Handbook(Locale locale) {
this.locale = locale;
AddonList sets = Addons.getAddons();
for (int i=0;i<sets.size();i++) {
// machwas, irrlevant
}
// Hier kracht es jetzt
try {
bots = BotPool.getAllBots();
} catch (Error e) {
e.printStackTrace();
}
}
// Hier stand mal noch mehr, unwichtig
}
Code:
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at de.limdul.cassiopeia.ai.BotList.<init>(BotList.java:17)
at de.limdul.cassiopeia.addons.Addon.getBots(Addon.java:479)
at de.limdul.cassiopeia.ai.BotPool.init(BotPool.java:119)
at de.limdul.cassiopeia.ai.BotPool.getAllBots(BotPool.java:52)
at lang.Handbook.<init>(Handbook.java:63)
at lang.Handbook.<init>(Handbook.java:39)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1055)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:925)
usw.
Die Zeile BotList.java:17 ist folgende:
Code:
public BotList() {
super(Bot.class.getName()); // Zeile 17
}
Krachen tut es also beim Aufruf Bot.class
Warum? Ich tippe auf ein Classloader Problem, kann es aber nicht eingrenzen.
Hat jemand einen Vorschlag, wie ich da rangehen soll?
Noch verwirrender ist aber folgendes. Mein Programm kann sogenannte Addons laden.
Gegeben seien Addon A und Addon B.
Man kann nun Prioritäten vergeben, welches Addon bevorzugt wird.
Steht Addon A, das Hauptaddon vor Addon B, so läuft der Code durch, andersrum aber nicht.
Die Addons bestehen aber im Prinzip rein aus XML Dateien, die geladen werden.