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

Java Discussion :

Problème mémoire pour commande externe


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Par défaut Problème mémoire pour commande externe
    Bonjour,
    J'utilise java sun 7 sous ubuntu 12.04

    J'ai créer grâce à java une pettite interface graphique pour que des utilisateurs entrent des paramètres. Mon programme récupère ces paramètres et execute ensuite une commande externe via runtime.exec.
    Ma commande externe est le lancement d'un script shell déroulant plusieurs vérification et lancant surtout un programme gourmand en ressource.
    Celui-ci tourne parfaitement quand je le lance en ligne de commande dans un terminal.
    Mais quand il est lancé via mon programme java il plante à cause d'une insuffisance de mémoire à allouer.

    Comment faire pour attribuer plus de mémoire pour cette commande externe.
    Sachant que je lance deja mon jar avec l'option -Xmx10g !

    Merci.
    Julie

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel est l'erreur exacte ?
    Que contient ce script shell ?
    Comment l'exécutes-tu depuis Java ? Fais voir ton code !


    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Par défaut
    Voici mon code java (la partie qui lance mon script) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String[] cmd={"/bin/sh","/opt/rseg/Launcher/ScriptRseg.sh",filename.getText(),(String)genome.getSelectedItem(),readLength.getText(),nbIteration.getText(),flagDead,binS,postC,cdfC};
     
    try{
     
    				Runtime r=Runtime.getRuntime();
    				final Process p=r.exec(cmd);
     
    				// Consommation de la sortie standard de l'application externe dans un Thread separe
    				new Thread() {
    					public void run() {
    						try {consommation sortie standard... puis autre thread pour consommation sortie erreur....
    Le script shell contient entre autre des vérifications des paramètres donnés en entrée, une attribution de fichiers correspondant à des variables pour lancer la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /opt/rseg/bin/rseg ${command}
    où $command correspond à toutes les options à donner à rseg.

    Et c'est Rseg qui est gourmand.
    Ce programme commence à se dérouler puis m'affiche l'erreur suivante :

    Error:could not allocate memory (c'est une erreur rseg)


    La nouveauté par rapport à tout à l'heure c'est que je l'ai testé sur une autre machine et que sur cette autre machine ca fonctionne sans problème alors que la mémoire ram est la meme.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    A quoi ressemble la commande ? Il faut faire attention au fait que exec() ne traite pas les caractères spéciaux comme le shell..


    Sinon il faut se reporter à la documentation du programme rseg. Je doute que cela viennent de Java mais plutôt de l'environnement ou autre...


    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Par défaut
    la commande ne comporte aucun caractère spécial, tout ce qu'il y a de plus classique.

    Ce qui me parait curieux c'est que ca fonctionne sur une machine et pas sur une autre toutes deux en ubuntu 12.04, meme config, meme java sun 1.7, meme RAM à16G. Meme nombre de processeurs...

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Le problème ne vient pas de java, mais de ce "rseg".

    Quel est ce programme ?


    a++

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/08/2009, 01h57
  2. Problème mémoire d'execution d'une appli java en commande shell
    Par Djinner² dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/07/2008, 17h34
  3. Réponses: 4
    Dernier message: 14/02/2008, 22h11
  4. problème de mémoire pour le processus w3wp.exe
    Par nasser.h dans le forum IIS
    Réponses: 4
    Dernier message: 07/02/2007, 14h51
  5. Réponses: 5
    Dernier message: 19/04/2005, 08h50

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