IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Linux Unbutu Bdd derby se connecte en mode terminal mais ne se connecte pas par le .jar


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Linux Unbutu Bdd derby se connecte en mode terminal mais ne se connecte pas par le .jar
    Bonjour,
    Je ne sais pas si j'ai placé ma demande au bon endroit car je ne sais pas si mon problème vient de java ou de linux

    j'ai un soucis avec un programme java crée sous Netbeans 8. C'est un simple programme de gestion de stock. Il est conçu avec une bdd derby. Tout fonctionne parfaitement sous windows7 que se soit avec Netbeans ou dans le répertoire dist (une fois le projet nettoyé et monté)

    Le soucis se passe sous linux Unbutu. Je ne comprends vraiment pas pourquoi. En fait en lançant le .jar (en ayant auparavant modifié les autorisations lecture/écriture et en ayant coché la case pour le rendre exécutable) il démarre. A un moment j'arrive sur une jform composée de différents jTextField qui remplissent une base de donnée. Une fois l'opération d'enregistrement effectuée une boite de dialogue informe que la sauvegarde a été effectuée puis la page d'enregistrement avec les champs vidés réapparait.

    Si je lance le .jar en mode terminal (java -jar Gestock.jar) tout se passe nikel. J'arrive à ma boite de dialogue qui me dit que tout est enregistrer et pas de soucis c'est bien dans la bdd.

    Lorsque je lance en cliquant sur le .jar la page d'enregistrement redevient vide (saute les étapes de l'enregistrement et de la boite de dialogue), donc vraisemblablement ne se connecte pas à la bdd.

    Je n'ai aucune erreur dans le terminal (puisque il fonctionne en mode terminal).

    Je ne comprend pas quelle est la différence entre le terminal et le lancement directement par le .jar..... Pourquoi l'un fonctionne et pas l'autre.
    Si quelqu'un à une idée je suis preneur.

    Par avance merci.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Si tu lance dans un terminal depuis un autre chemin que le dossier courant tu ne reproduirais pas le problème par hasard?


    cd / && java -jar chemin/vers/ton.jar

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse tchize je vais essayer ce soir.

    Pour palier à ce soucis j'ai crée un batch avec la ligne de commande (java -jar gestock.java) et cela fonctionne mais c'est pas beau j'aime pas trop.

    J'avais effectivement pensé à un problème de chemin relatif dans mon code java lors de l'ouverture de ma connexion, mais je pense avoir tout essayé ("jdbc:derby:Stock" ou "getproperty("user") ....) mais rien y fait. Sous linux pas de soucis en mode terminal mais n'ouvre pas ma base lorsque je lance par gestock.jar.

    Je vais tenter, comme tu le conseilles, d'ouvrir en mode terminal dans un autre repertoire. Ca démontrera peut être un soucis de path.

    Je te tiens au courant merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    quand tu double clique, les chemins relatifs se résolvent par rapport à la user home, pas par rapport au jar.

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci de t’intéresser à mon problème tchize

    Alors effectivement j'ai un soucis de chemin puisque lorsque je lance en mode terminal dans un autre répertoire il me fait la même erreur que lorsque je clique sur le .jar.

    Par contre il me semblait avoir tout essayé concernant la connexion de ma base.... Quel chemin relatif je dois alors récupérer?

    Bon je sais que ça vient de là alors je vais chercher un peu ....

    Merci encore pour ton aide.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Si tu as besoin que le dossier courant soit celui où se trouve le jar lors de l'exécution, le plus simple est de lancer l'application avec un fichier batch qui fera le cd nécessaire.

    Si ton problème est juste de savoir où se trouve la base de données, tu peux aussi te contenter de la mettre à un endroit connu à l'avance, comme la user.home, ou de demander à l'utilisateur et de stocker cette information dans les préférences de l'application.

  7. #7
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour thcize, encore merci pour tes réponses.

    J'ai effectivement crée un batch qui fonctionne. Donc ça va passer.
    Je vais également tenter de voir si ceci passe. Sinon j'en resterais avec mon batch.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     String url = System.getProperty("user.dir");
     
            try {
               Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
               Connection conn = DriverManager.getConnection("jdbc:derby:" + url + File.separator + "Stock;create=true;user=val");
    Mais j'avais déjà essayé et cela n'avait rien corrigé.

    En tout cas merci tchize.

    Edit :
    Bon c'est bien ce que je pensais.... avec le code ci dessus ma bdd est crée sous linux dans ma cession/Stock et non à l'emplacement de mon .jar.

    Je vais donc je pense en rester avec le batch mais je ne trouve ca pas très propre.
    En tout cas merci encore tchize

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/02/2008, 16h39
  2. comment lancer la connection en mode console
    Par je®ome dans le forum Réseau
    Réponses: 0
    Dernier message: 26/11/2007, 12h11
  3. Réponses: 4
    Dernier message: 11/05/2006, 16h57
  4. Se connecter en mode console
    Par in dans le forum Gnome
    Réponses: 2
    Dernier message: 28/06/2005, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo