G
Guest
Gast
Hallo,
ich habe eine grafische Anwendung geschrieben, die eine Fontdatei(ttf) als Schriftart nutzen soll. In der IDE(eclipse) habe ich keine Probleme, wenn ich die Anwendung aber in ein .jar-File exportiere, dann bekomme ich folgende Fehlermeldung:
Die Font-Datei lade ich im Konstruktor der Klasse "DiceBackgroundPanel extends JPanel" mit folgendem Code:
Die Fehlermeldung deutet ja darauf hin, dass in der Klasse "DiceView extends JFrame" die run()-Methode des ClassLoader einen "ungültigen/leeren" Pfad erhält. Aber warum?
In der IDE gehts...ja...das heißt gar nichts mehr, wenn es ein jar ist. Aber bei sämtlichen Bildmaterial und config-Files geht es auch über diesen Weg, mit der Ausnahme, dass ich sonst kein File-Objekt erstelle. Hängt das irgendwie zusammen?
In der Klasse "DiceView extends JFrame" wird übrigens auch nie der ClassLoader aufgerufen, sondern lediglich ein Objekt vom Typ "DiceBackgroundPanel extends JPanel", indem der ClassLoader aufgerufen wird. Daher erkläre ich mir den "falschen" Namen für die auslösende Klasse.
Ich bin dankbar für jeden (geschriebenen) Gedanken.
greetz
SLi
ich habe eine grafische Anwendung geschrieben, die eine Fontdatei(ttf) als Schriftart nutzen soll. In der IDE(eclipse) habe ich keine Probleme, wenn ich die Anwendung aber in ein .jar-File exportiere, dann bekomme ich folgende Fehlermeldung:
java.lang.ClassNotFoundException: novaDice.DiceView
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 com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
Die Font-Datei lade ich im Konstruktor der Klasse "DiceBackgroundPanel extends JPanel" mit folgendem Code:
Code:
private final String BILDPFAD = "/ordnerName/";
try {
fontRaw = Font.createFont(Font.TRUETYPE_FONT, new File((getClass().getResource(BILDPFAD+"Eurostile.ttf")).toURI()));
}
catch (Exception e) {
e.printStackTrace(); // Fehlerbehandlung abgekürzt.
}
Die Fehlermeldung deutet ja darauf hin, dass in der Klasse "DiceView extends JFrame" die run()-Methode des ClassLoader einen "ungültigen/leeren" Pfad erhält. Aber warum?
In der Klasse "DiceView extends JFrame" wird übrigens auch nie der ClassLoader aufgerufen, sondern lediglich ein Objekt vom Typ "DiceBackgroundPanel extends JPanel", indem der ClassLoader aufgerufen wird. Daher erkläre ich mir den "falschen" Namen für die auslösende Klasse.
Ich bin dankbar für jeden (geschriebenen) Gedanken.
greetz
SLi