ich bin dabei, ein Spielchen zu programmieren.
Dafür möchte ich ein Font definieren und 2 verschiedene Mauspfeile anzeigen.
Das klappt im Compiler (Netbeans) auch perfekt!
Nur, wenn ich die Datei zur .jar kompiliere, kann die ausgeführte .jar Datei die Resourcen nicht finden?!?!?
Folgendes habe ich schon überprüft:
- Ja, die Resourcen sind in der .jar Datei am richtigen Platz
- Ja, ich habe auf Case-Sensitive geachtet.
- In anderen Programmen von mir funktioniert das auch!
Code Snippets:
public class Scene extends JLabel {
public Scene() {
InputStream in = this.getClass().getResourceAsStream("/classes/Roman.ttf");
try {
font = Font.createFont(Font.TRUETYPE_FONT, in).deriveFont(Font.BOLD, 46);
in.close();
} catch (Exception e) {
}
URL curUrl1 = getClass().getResource("/classes/mouse1.png");
mouse = getToolkit().getImage(curUrl1);
URL curUrl2 = getClass().getResource("/classes/mouse2.png");
mouseclicked = getToolkit().getImage(curUrl2);
}
---- snip ----
public static void main(String[] args) {
final JFrame frame = new JFrame("Test");
frame.setUndecorated(true);
BufferedImage cursorImg = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImg, new Point(0, 0), "blank cursor");
final Scene scene = new Scene();
scene.setCursor(blankCursor);
scene.setPreferredSize(new Dimension(1920, 1080));
frame.setLayout(new BorderLayout());
frame.add(scene, BorderLayout.CENTER);
frame.pack();
frame.setAlwaysOnTop(true);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
scene.addKeyListener(scene.keys);
scene.addMouseListener(scene.m);
scene.addMouseMotionListener(scene.mm);
scene.setFocusable(true);
scene.setScene(0);
Thread runMe= new Thread() {
public void start() {
while (true) {
Graphics g = scene.getGraphics();
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g = g2;
scene.drawThisScene();
java.awt.Image img = scene.thisscene.getScaledInstance(-1, scene.getHeight(), java.awt.Image.SCALE_FAST);
if (scene.tr == 0) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, scene.getWidth(), scene.getHeight());
g.drawImage(img, (scene.getWidth() - img.getWidth(null)) >> 1, 0, null);
}
frame.setTitle(scene.name);
scene.requestFocus();
try {
Thread.sleep(50);
} catch (Exception e) {
}
}
}
};
runMe.start();
}
---- snip ----
}
Wie gesagt, das Spiel (soweit man schon von Spiel reden kann) funktioniert 100% direkt aus Netbeans kompiliert, aber starte ich es von der Kommandozeile, wenn es zur .JAR kompiliert ist, können die Resourcen nicht aus der .JAR geladen werden.
Wer kann mir sagen, warum nicht?
Frage
Devilmarkus
Hallo zusammen,
ich bin dabei, ein Spielchen zu programmieren.
Dafür möchte ich ein Font definieren und 2 verschiedene Mauspfeile anzeigen.
Das klappt im Compiler (Netbeans) auch perfekt!
Nur, wenn ich die Datei zur .jar kompiliere, kann die ausgeführte .jar Datei die Resourcen nicht finden?!?!?
Folgendes habe ich schon überprüft:
- Ja, die Resourcen sind in der .jar Datei am richtigen Platz
- Ja, ich habe auf Case-Sensitive geachtet.
- In anderen Programmen von mir funktioniert das auch!
Code Snippets:
Bearbeitet von DevilmarkusWie gesagt, das Spiel (soweit man schon von Spiel reden kann) funktioniert 100% direkt aus Netbeans kompiliert, aber starte ich es von der Kommandozeile, wenn es zur .JAR kompiliert ist, können die Resourcen nicht aus der .JAR geladen werden.
Wer kann mir sagen, warum nicht?
Link zu diesem Kommentar
Auf anderen Seiten teilen
3 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.