Java : erreur execution Linux
Ymaq
Messages postés
50
Statut
Membre
-
Ymaq Messages postés 50 Statut Membre -
Ymaq Messages postés 50 Statut Membre -
Bonjour,
Nous avons programmé, 2 de mes camarades et moi-même, un jeu de plateau en langage Java sous Windows Vista dans le cadre d'un projet de POO, et l'exécution se lance parfaitement.
(exemple d'exécution : https://www.youtube.com/user/ymaq117#p/a/u/0/0zaAOMizJRc )
Le problème survient lors d'une exécution sous Linux.
J'ai déjà installé les fichiers jdk-6u25-linux-i586.bin et jre-6u25-linux-i586.bin dans le dossier principal (Dossier personnel).
Puis j'ouvre une console pour compiler mon projet (javac *.java), juste des Warnings en guise d'erreur... (à cause d'accents dans les commentaires notamment).
Puis j'execute ma classe principale (java Programme).
En résulte 2 erreurs, toutes deux liées à l'affichage de la fenêtre de jeu...
Je ne pense pas que mon problème vienne de noter code, étant donné qu'une compilation et exécution fonctionnent parfaitement sous Windows (comme l'atteste la vidéo...).
Et puis un programme java n'est pas censé fonctionner quel que soit le système d'exploitation qui l'utilise ?... =/
Une aide serait la bienvenue ! ^^
Merci d'avance.
Ymaq.
Nous avons programmé, 2 de mes camarades et moi-même, un jeu de plateau en langage Java sous Windows Vista dans le cadre d'un projet de POO, et l'exécution se lance parfaitement.
(exemple d'exécution : https://www.youtube.com/user/ymaq117#p/a/u/0/0zaAOMizJRc )
Le problème survient lors d'une exécution sous Linux.
J'ai déjà installé les fichiers jdk-6u25-linux-i586.bin et jre-6u25-linux-i586.bin dans le dossier principal (Dossier personnel).
Puis j'ouvre une console pour compiler mon projet (javac *.java), juste des Warnings en guise d'erreur... (à cause d'accents dans les commentaires notamment).
Puis j'execute ma classe principale (java Programme).
En résulte 2 erreurs, toutes deux liées à l'affichage de la fenêtre de jeu...
Je ne pense pas que mon problème vienne de noter code, étant donné qu'une compilation et exécution fonctionnent parfaitement sous Windows (comme l'atteste la vidéo...).
Et puis un programme java n'est pas censé fonctionner quel que soit le système d'exploitation qui l'utilise ?... =/
Une aide serait la bienvenue ! ^^
Merci d'avance.
Ymaq.
A voir également:
- Java : erreur execution Linux
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Normalement, il n'y a même pas besoin de recompiler sous Linux, tu peux compiler sous Windows, copier-coller tes fichiers .class ou .jar sous Linux et les lancer directement comme ça.
Dans un premier temps je pencherais pour une incompatibilité des versions même si tu as installé les bonnes jdk, peut-être que le PATH qui défini javac ne correspond pas à la jdk que tu as installé mais à une version plus ancienne.
Pour t'aider il nous faudrait l'intitulé des deux erreurs obtenues, et éventuellement le code source associé.
Dans un premier temps je pencherais pour une incompatibilité des versions même si tu as installé les bonnes jdk, peut-être que le PATH qui défini javac ne correspond pas à la jdk que tu as installé mais à une version plus ancienne.
Pour t'aider il nous faudrait l'intitulé des deux erreurs obtenues, et éventuellement le code source associé.
Alors, j'ai recréé le problème en codant 3 classes plus petites, pour ne pas lire des lignes et des lignes de code ^^
En gros, la classe Main crée - ou plutôt doit créer - une fenetre avec la classe "FenetreConfig", qui contient un bouton validation.
Ce bouton, quand on clique dessus, doit fermer la fenetre FenetreConfig, créer une nouvelle fenetre "TestFenetre", et l'afficher.
--code Main.java--
--code ConfigFenetre.java--
--code TestFenetre.java--
Voilà pour les codes...
Maintenant les erreurs.
Lors de la compilation, juste des warnings sur des lignes de commentaires, à cause d'accents...
Mais lors de l'exécution, ça me retourne ces différentes erreurs :
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
at java.awt.Window.<init>(Window.java:437)
at java.awt.Frame.<init>(Frame.java:419)
at java.awt.Frame.<init>(Frame.java:384)
at javax.swing.JFrame.<init>(JFrame.java:174)
at ConfigFenetre.<init>(ConfigFenetre.java:25)
at Main.main(Main.java:8)
(J'ai l'impression que ces erreurs concerne l'affichage de ma fenêtre java... enfin, la création d'une fenetre java en général... ?)
Merci.
Ymaq
En gros, la classe Main crée - ou plutôt doit créer - une fenetre avec la classe "FenetreConfig", qui contient un bouton validation.
Ce bouton, quand on clique dessus, doit fermer la fenetre FenetreConfig, créer une nouvelle fenetre "TestFenetre", et l'afficher.
--code Main.java--
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args){
ConfigFenetre fen2 = new ConfigFenetre();
}
}
--code ConfigFenetre.java--
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.BoxLayout;
import javax.swing.JButton;
public class ConfigFenetre extends JFrame implements ActionListener {
JPanel container1 = new JPanel();
private JButton validation;
//constructeur
public ConfigFenetre(){
this.setTitle("Labyrinthe - settings");
this.setSize(270, 220);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setBackground(new Color(0,0,0,255));
validation = new JButton("Let's started !");
validation.addActionListener(this);
validation.setVisible(true);
// création des différents "parties" de notre fenetre de configuration
container1.setBackground(Color.black);
container1.setLayout(new BorderLayout());
// ajout des différents boutons et labels..
JPanel top3 = new JPanel();
top3.add(validation);
// ajout aux différents "blocs" les différentes zones
container1.add(top3,BorderLayout.SOUTH);
setContentPane(container1);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if((JButton)e.getSource()==validation) {
new TestFenetre().setVisible(true);
this.setVisible(false);
}
}
}
--code TestFenetre.java--
import javax.swing.*;
import java.awt.*;
import javax.swing.JFrame;
public class TestFenetre extends JFrame {
public TestFenetre() {
this.setTitle("ma nouvelle fenetre !!!");
this.setSize(500,300);
this.setBackground(new Color(0,120,120,155));
}
}
Voilà pour les codes...
Maintenant les erreurs.
Lors de la compilation, juste des warnings sur des lignes de commentaires, à cause d'accents...
Mais lors de l'exécution, ça me retourne ces différentes erreurs :
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
at java.awt.Window.<init>(Window.java:437)
at java.awt.Frame.<init>(Frame.java:419)
at java.awt.Frame.<init>(Frame.java:384)
at javax.swing.JFrame.<init>(JFrame.java:174)
at ConfigFenetre.<init>(ConfigFenetre.java:25)
at Main.main(Main.java:8)
(J'ai l'impression que ces erreurs concerne l'affichage de ma fenêtre java... enfin, la création d'une fenetre java en général... ?)
Merci.
Ymaq
J'ai testé le code, je l'ai compilé sous Windows 7, copié-collé les .class sous Ubuntu 10.04, et lancé la classe Main... aucun problème à l'exécution !
Je t'invite soit à faire comme moi (compiler sous Windows et utiliser les fichiers sous Linux) soit à vérifier que tu as bien les même versions de javac sous Windows et Linux (javac -version)
Je t'invite soit à faire comme moi (compiler sous Windows et utiliser les fichiers sous Linux) soit à vérifier que tu as bien les même versions de javac sous Windows et Linux (javac -version)
En fait ce n'est pas vraiment un problème d'exécution mais de compilation.
L'exécution plante sous Ubuntu parce que c'est une autre compilation or à mon avis c'est cette compilation qui diffère...
Remarque : compiler sous Windows n'optimisera pas l'exécution sous Windows et idem pour Ubuntu, donc une seule compilation correcte (Windows en l'occurence) devrait suffire pour distribuer ton programme sur tous les systèmes.
L'exécution plante sous Ubuntu parce que c'est une autre compilation or à mon avis c'est cette compilation qui diffère...
Remarque : compiler sous Windows n'optimisera pas l'exécution sous Windows et idem pour Ubuntu, donc une seule compilation correcte (Windows en l'occurence) devrait suffire pour distribuer ton programme sur tous les systèmes.