Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec l'exécutable de mon application(NetBeans)

18 décembre 2011 à 22:11:41

Salut,
J'ai une application de gestion (java sous netbeans+ SGBD PostgreSQL) et je voulais faire un executable, donc j'ai fait build sur mon application j'obtient .jar dans le dossier dist, l'application s'exécute normalement mais quand par exemple je clique sur un bouton qui doit faire la recherche dans ma BDD il fait pas la recherche il m'affiche pas les résultat par contre quand j'exécute a partir de NetBeans tout se passe bien.
Où est le problème ?? pourquoi mon application ne marche pas correctement quand je la lance avec le jar executable ??
Merci
  • Partager sur Facebook
  • Partager sur Twitter
18 décembre 2011 à 22:15:58

Salut khadi8,
Est-tu sur que ton .jar est complet ? :-° Utilise tu des packages spécifiques qui ne seraient pas importés dans ton .jar ? As tu un dossier "lib" au même niveau que ton .jar ? Bref un peu plus de détails :p
  • Partager sur Facebook
  • Partager sur Twitter
18 décembre 2011 à 22:50:12

J'ai un seul package donc surement il manque pas de package
pour le dossier lib oui il se trouve au même niveau que mon .jar
  • Partager sur Facebook
  • Partager sur Twitter
18 décembre 2011 à 23:56:46

Est-ce que tu utilise un look and feel ? Quels sont les .jar présents dans le dossier "lib"?
  • Partager sur Facebook
  • Partager sur Twitter
18 décembre 2011 à 23:59:04

c'est quoi un look and feel ?
les jar dans le dossier lib sont
toplink-essentials
toplink-essentials-agent
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:10:42

Un look and feel est utilisé pour redéfinir le visuel de ta frame. Dans ton .jar, trouve tu une méthode qui marche ? Ou toute ton application ne fonctionne pas ... ?
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:15:18

L'application marche ce qui marche pas c la connexion avec la BDD je te donne un exemple
si je fais une recherche d'un element qui se trouve dans ma BDD je click sur le bouton recherché le bouton fonction il m'affiche la boite de dialogue que j programmé ( l’élément recherché est ) mais il me donne pas cette élément il m'affiche juste ce message hors que je suis sur que cet élément existe car quand j'exécute directement a partir de NetBeans tout marche bien tu me comprends ?
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:20:19

Oui je vois, un peu de code pour éclaircir :p
Si tu pouvais mettre ta fonction de recherche (déclenchée par un actionPerformed dans ta JDialog)
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:22:42

voici une fonction de recherche
private void chercher_agenceActionPerformed(java.awt.event.ActionEvent evt) {                                                
// TODO add your handling code here:
    
    
    String num_ag = javax.swing.JOptionPane.showInputDialog(this, "Taper le numéro de l'agence :","La recherche d'une agence",javax.swing.JOptionPane.QUESTION_MESSAGE);
        int numag=Integer.parseInt(num_ag);
        String titre="La recherche d'une agence :";
        String message="L'agence recherché est :\n\n";
        
        
		try {
			Class.forName("org.postgresql.Driver");
			
			String url = "jdbc:postgresql://localhost:5432/sonelgaz";
			String user = "postgres";
			String passwd = "2890khadidja";
			
			Connection conn = DriverManager.getConnection(url, user, passwd);
			
			//Création d'un objet Statement
			Statement state = conn.createStatement();
			//L'objet ResultSet contient le résultat de la requête SQL
			ResultSet result = state.executeQuery("SELECT * FROM agence where numag="+numag);
			//On récupère les MetaData
			ResultSetMetaData resultMeta = result.getMetaData();
			
			
			//On affiche le nom des colonnes
                      
                      
                       while(  result.next() ){

message+="\n";
message+="\t" +resultMeta.getColumnName(1).toUpperCase() +" :  "+result.getObject(1).toString()+ "\n ";
message+="\t" +resultMeta.getColumnName(2).toUpperCase() +" :  "+result.getObject(2).toString()+ "\n ";
message+="\t" +resultMeta.getColumnName(3).toUpperCase() +" :  "+result.getObject(3).toString()+ "\n ";
message+="\t" +resultMeta.getColumnName(4).toUpperCase() +" :  "+result.getObject(4).toString()+ "\n ";

 }
                       
                        result.close();
                        state.close();

			
		} catch (Exception e) {
			e.printStackTrace();
		}
       
     javax.swing.JOptionPane.showMessageDialog(this,
                        
            message,titre,
            javax.swing.JOptionPane.INFORMATION_MESSAGE);
       
        
    
}

  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:27:37

Je pense que le soucis viens du : "org.postgresql.Driver"
Est-ce qu'une exception est levée ?
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:29:31

non quand l'agence existe aucune exception n'est levée ça marche bien c'est lors de l’inexistence de l'agence qu'une exception est levée
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:35:56

Donc actuellement tu n'as aucune exception de levée, et aucun résultat retourné par ta méthode ... Mais cette même méthode dans Netbeans est bonne ... Est-ce que tu peux t'assurer (avec un print ou un JLabel) que la connexion à la BDD se fait correctement (à tester avec le .jar) :o
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:44:02

EMMM je viens de mettre un prin mais quand j'exécute le bouton rechercher le message n'apparait pas est pourtant il me renvoie mes donnée correctement
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:48:04

Bizarre o_O , essaye d'aller faire un tour la : http://jdbc.postgresql.org/download.html
Prend la version que tu utilise et copie/colle le .jar téléchargé dans le dossier "bin" => "lib".
Re-éxecute ton application :-°
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:51:03

le JDBC je l'avais copier dans le dossier d'installation de la JDK exectement ici
jdk/jre/lib/ext
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:53:17

En y plaçant dans le "lib" et pas "bin" de ta racine ça fais rien de mieux ?
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:55:39

J'ai pas compris tu me demandes de le placer dans le bin et pas dans le lib ?
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 0:57:47

Non je te demande de le placer dans le dossier "lib" qui est avec ton executable :p
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 1:03:15

Pareil ça marche pas avec l'exécutable mais ça marche toujours à partir de NetBeans
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2011 à 14:39:11

Essaye de trouver quelle instruction ne se fait pas (en affichant un label avec les différentes valeurs des variables) et dit moi laquelle ne passe pas ou ne fais pas son job' comme il faut.
  • Partager sur Facebook
  • Partager sur Twitter
7 mai 2021 à 14:20:53

lorsque j'insère une image l'exécutable ne fonctionne plus sur netbeans 12.3
  • Partager sur Facebook
  • Partager sur Twitter
7 mai 2021 à 15:16:55

@MaickDaneNkou Bonjour, merci de ne pas déterrer d'ancien sujet. Créer le votre dans le respect des règles du forum à savoir qu'un message comporte des formules de politesses de base (un bonjour ou des salutations à la communauté et ce termine par des remerciement par avance pour les future réponses), une description explicite de votre problématique et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'insertion de code soit le bouton code </>

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

-
Edité par AbcAbc6 7 mai 2021 à 15:18:02

  • Partager sur Facebook
  • Partager sur Twitter