Pourquoi mon Runnable Jar fichier ne fonctionne pas
J'ai suivi environ 10 différents tutoriels et aucun d'eux ne semblait faire l'affaire, mon runnable jar file n'est tout simplement pas de travail.
Mon jeu fonctionne bien quand je le lance dans eclipse, et j'ai été en mesure de le faire dans un runnable jar file qui a travaillé seulement un jour ou deux il ya, et n'ont pas changé trop de code. Lorsque j'essaie d'exécuter l' .jar java icône apparaît en bas de mon écran mais rien ne se passe.
C'est mon lanceur est de ne pas en ouvrir (si j'exécute sans lanceur, il fonctionne très bien), il n'y a pas d'erreurs, que j'ai ouvert avec le terminal ou eclipse.
package com.l3g3nds.threed;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class Launcher extends JFrame implements MouseListener, MouseMotionListener {
private static final long serialVersionUID = 1L;
protected JPanel window = new JPanel();
//private JButton play, options, help, quit, credits;
//private Rectangle rplay, roptions, rhelp, rquit, rcredits;
protected int buttonWidth = 120;
protected int buttonHeight = 40;
public Launcher(int id) {
JPanel panel = (JPanel) getContentPane();
JLabel label = new JLabel();
label.setIcon(new ImageIcon("res/Launcher/schoolbackground.png"));
System.out.println(Display.lScreen());
if (Display.lScreen() == 5)
label.setIcon(new ImageIcon("res/Launcher/quit1.png"));
if (Display.lScreen() == 4)
label.setIcon(new ImageIcon("res/Launcher/credits1.png"));
if (Display.lScreen() == 3)
label.setIcon(new ImageIcon("res/Launcher/options1.png"));
if (Display.lScreen() == 2)
label.setIcon(new ImageIcon("res/Launcher/help1.png"));
if (Display.lScreen() == 1)
label.setIcon(new ImageIcon("res/Launcher/beginrunning1.png"));
panel.add(label);
setUndecorated(true);
System.out.println("launched");
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
pack();
setVisible(true);
addMouseListener(this);
addMouseMotionListener(this);
}
public void drawButtons() {
}
@Override
public void mouseClicked(MouseEvent e) {
int cx = e.getX();
int cy = e.getY();
if (cx >= 11 && cy >= 14 && cx <= 214 && cy <= 44) {
dispose();
new RunGame();
} else if (cx >= 11 && cy >= 66 && cx <= 70 && cy <= 96) {
//open help
} else if (cx >= 11 && cy >= 119 && cx <= 119 && cy <= 144) {
this.dispose();
new Options();
} else if (cx >= 11 && cy >= 170 && cx <= 114 && cy <= 200) {
//open credits
} else if (cx >= 11 && cy >= 222 && cx <= 74 && cy <= 254) {
System.exit(0);
}
}
@Override
public void mouseEntered(MouseEvent e) {
//TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
//TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
//TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
//TODO Auto-generated method stub
}
@Override
public void mouseDragged(MouseEvent arg0) {
//TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
//TODO Auto-generated method stub
int mx = e.getX();
int my = e.getY();
if (mx >= 11 && my >= 14 && mx <= 214 && my <= 44) {
if (Display.lScreen() != 1) {
Display.setlScreen(1);
new Launcher(1);
System.out.println("1");
}
} else if (mx >= 11 && my >= 66 && mx <= 70 && my <= 96) {
if (Display.lScreen() != 2) {
Display.setlScreen(2);
new Launcher(1);
System.out.println("2");
}
} else if (mx >= 11 && my >= 119 && mx <= 119 && my <= 144) {
if (Display.lScreen() != 3) {
Display.setlScreen(3);
new Launcher(1);
System.out.println("3");
}
} else if (mx >= 11 && my >= 170 && mx <= 114 && my <= 200) {
if (Display.lScreen() != 4) {
Display.setlScreen(4);
new Launcher(1);
System.out.println("4");
}
} else if (mx >= 11 && my >= 222 && mx <= 74 && my <= 254) {
if (Display.lScreen() != 5) {
Display.setlScreen(5);
new Launcher(1);
System.out.println("5");
}
}
else {
if (Display.lScreen() != 0) {
Display.setlScreen(0);
new Launcher(1);
System.out.println("0");
}
}
}
}
Je suis sur un mac si ça peut aider...
Voici des captures d'écran que j'ai pris des mesures exactes, j'ai pris
Quelques mises en garde que je suis (je pense qu'ils sont seulement en raison de variables inutilisées, j'ai eu ce message plus tôt, quand j'étais en mesure d'obtenir mon .bocal de travail)
Cela apparaît que le haut de mon écran avec l'icône de java à la base, mais rien ne se passe.
-Grâce
"and have not changed too much code."
, mais ce que vous n'avez plus être en fait assez important. Alors... qu'est-ce exactement avez-vous changé? Sans plus de cette information, je pense que nous sommes condamnés à être incapable de vous aider. Remarque, vous pouvez supprimer les images que vous avez posté, car ils ne contribuent pas du tout à trouver la source de votre problème.Avez-vous récemment ajoutez tous les pots ou les classes de votre application?
exécutez le fichier jar à partir de la ligne de commande (à l'aide de java -jar theJar.jar), et voir si vous avez une erreur.
Je reçois ce message d'erreur "Impossible d'accéder à jarfiles {Run.jar}"
Modifier votre question et après l'abattage, complet et exact de l'erreur avec ses trace de la pile.
OriginalL'auteur java | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous faites une application graphique, et de lancer le Jar en cliquant sur elle? De nombreuses fois, si une application GUI a une erreur au démarrage, il n'a pas visiblement rien faire, comme la pop un message d'erreur, car il n'a pas eu une chance de construire toute sorte de GUI pour signaler l'erreur à l'instant. Je suppose que quelque chose vous a changé provoque une exception au démarrage, et ce message n'est pas visible parce que vous êtes le lancement du pot en cliquant sur elle.
Si vous exécutez le Bocal de la borne à la place (spotlight: "terminal"), vous serez en mesure de voir la trace de la pile qui empêche votre Pot de courir, et j'espère que ça va vous aider à déboguer plus loin.
Vous pouvez aussi essayer d'attraper l'exception dans votre
main
méthode et afficher une interface graphique d'alerte, cependant cela ne fonctionne pas si l'exception est soulevée devant lamain
méthode commence (par exemple, lors du chargement des classes). En d'autres termes, c'est un atout, mais n'est pas totalement résoudre le problème. Vous pouvez encore avoir besoin de courir le Pot à partir de la ligne de commande.Ahh j'ai trouvé d'où mon problème est mais vous ne savez pas comment le résoudre.
Post la trace de la pile par l'édition de votre question. Si vous validez l'ensemble de la trace de la pile, il sera facile à identifier votre problème.
qu'est ce qu'une trace de la pile?
est une trace de la pile?" --> Plus d'infos ici. Apprendre à lire et à interpréter une trace de la pile est l'une des choses les plus fondamentales que vous devez apprendre si jamais vous voulez être un développeur Java.
OriginalL'auteur dimo414
Pour exécuter une .fichier jar, dans la ligne de commande d'écriture:
Où
'jar_file'
est le nom de votre fichier jar, sans les guillemets. Dans votre cas, il semble êtrerun.jar
..jar
fichiers sont.zip
archives, qui peuvent perturber le système d'exploitationJar format de fichier
Impossible d'accéder à jarfiles {Run.jar}
Supprimer les accolades, désolé
J'ai trouvé quelle classe mon erreur, mais je ne sais toujours pas pourquoi sa ne fonctionne pas...
Ce sera sans doute exécuter votre programme, c'est à vous de déboguer le reste. Bien sûr, toute question spécifique, vous êtes coincé sur peut être posté ici
OriginalL'auteur Isaac
Essayez de supprimer le .classe les fichiers du dossier bin et redémarrer le projet et nettoyer le projet.
Il est question avec eclipse.Même j'ai été confrontée au même problème, alors j'ai supprimé les fichiers et de suivi mentionnés processus.
OriginalL'auteur Prasad Reddy