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

Langage Java Discussion :

Application externe CASTEM


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Application externe CASTEM
    Bonjour chers sapitents,

    Je poursuis l'objectif suivant :
    Lancer à partir d'une application java l'instruction suivante :
    "castem06.bat elas12.dgibi"
    où castem06.bat est un script 'bat' d'appel du code éléments finis castem du CEA (voir www-cast3m.cea.fr/) et elas12.dgibi un script à lire par castem pour exécuter un calcul donné.

    Dans je veux faire cela dans des conditions bien maitrisées :
    - savoir quand l'instruction est lancée
    - savoir quand l'instruction est effectivement terminée
    en sont les principales étapes.

    A leur actuelle j'utilise le code suivant :

    import java.io.* ;
    import javax.swing.* ;
    import org.omg.SendingContext.RunTime;

    public class Test01_CASTEM {
    public static void main(String [] args) throws InterruptedException {
    try {
    String runCastem = "K:\\Cast3M\\PCW_06\\bin\\castem06.bat" ;
    String fileCastem = "K:\\Cast3M\\PCW_06\\dgibi\\elas12.dgibi" ;
    String cmd = runCastem + " " + fileCastem ;

    Process proc = Runtime.getRuntime().exec(cmd)) ;
    proc.waitFor() ;

    } catch (IOException e) {System.out.println("Interception") ;}
    }
    }

    Lorsque je lance le programma java :
    1°) rien de ne passe
    2°) je force la fin du programme
    3°) castem s'exécute

    Je vous passe le fait que j'enrage.
    Je vous passe le fait que j'ai bien essayé de trouver la solution sur le net, sans grand succès.

    Bref, j'ai besoin d'un coup de pouce.

    Plus généralement, si je veux lancer à la place de cmd la commande
    "start", rien ne se passe. Alors que cette commande doit ouvrir une nouvelle
    fenetre dos.

    Bref... enfin bref... je ne crierais pas, mais "help me".

    Par ailleur, bonnes fêtes à tous.

    Aleoen

  2. #2
    Membre actif Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Points : 252
    Points
    252
    Par défaut
    J'ia un peut regardé ton truc.

    Si tu veux utiliser Start il faut utiliser l'interpreteur de commande.

    Petite explication:

    exec execute un programme ou un script. Mais il n'utilise pas l'interpreteur de commandes !

    donc à toi de faire le necessaire pour l"utiliser.

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                Process process = Runtime.getRuntime().exec("cmd /C \"dir > c:\\test.txt \"");
                process.waitFor();
    Cela fait un dir et l'enregistre dans test.txt
    Après la fenêtre n'est pas affiché ! à toi de gérer les I/O avec getInputStream et getOutputStream.

    PS: Ceci n'est qu'une aproximation de ce que j'ai remarqué. Pour des informations exacte je te conseil vivement d'utiliser la javadoc !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour Pikwik,

    Oui la fenetre n'est pas affichée, c'est justement la que la bas blesse à mon avis.

    En terme de gestion IO, je dois dire que je fais plus que m'égarer.

    Le problème que j'ai soulevé revèle trop de difficulté d'un coup pour que je puisse en venir à bout seul.

  4. #4
    Membre actif Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Points : 252
    Points
    252
    Par défaut
    As tu pensés que peut être java n'est pas ce dont tu as besoin ?

    Tu ne peux pas faire un script perl ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai déjà évalué l'intérêt de java par rapport à mon projet.
    J'ai regardé parmi les languages interprétés comme python et perl, j'ai également regardé du coté de C++ par curiosité, j'ai ensuite rapidement fait le tour de la planète programmation.

    J'y est donc pensé.
    J'arrive à la conclusion que java est ce dont j'ai besoin, mais j'ai également besoin de plus de maturité pour arriver à mes fins.

  6. #6
    Membre actif Avatar de Pikwik
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 237
    Points : 252
    Points
    252
    Par défaut
    Ce petit bout de code execute "dir" à l'aide de cmd et affiche le résultat dans la console.

    Tu devrais pouvoir facilement changer mon dir par ton batch.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public static void main(String[] args) throws Exception {
            Process process = Runtime.getRuntime().exec("cmd /c \"dir\"");
            InputStream inputStream = process.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ( ( line = bufferedReader.readLine()) != null ) {
                System.out.println(line);
            }
        }
    En espérant que cela va t'aider.

    PS: Je me suis pas soucié des exceptions, je te laisse le soin de faire le necessaire pour que le code gére correctement les erreurs.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je n'ai qu'une chose à dire

    merci

    En effet ça marche...

    Joyeux noël

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par Pikwik
    Ce petit bout de code execute "dir" à l'aide de cmd et affiche le résultat dans la console.

    Tu devrais pouvoir facilement changer mon dir par ton batch.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public static void main(String[] args) throws Exception {
            Process process = Runtime.getRuntime().exec("cmd /c \"dir\"");
            InputStream inputStream = process.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ( ( line = bufferedReader.readLine()) != null ) {
                System.out.println(line);
            }
        }
    En espérant que cela va t'aider.

    PS: Je me suis pas soucié des exceptions, je te laisse le soin de faire le necessaire pour que le code gére correctement les erreurs.
    si on veut utiliser le même code mais pour aller exécuter un petit script shell qui se trouve sur un serveur de fichiers unix . Faut-il d'abord ouvrir une connexion avec login, mot de passe avec ce serveur ? si oui quel type de connection ?

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 23/01/2008, 09h17
  2. Réponses: 6
    Dernier message: 07/09/2005, 20h31
  3. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07
  4. Les Triggers et application externes
    Par Rahustro dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 16/02/2005, 13h53
  5. Appel application externe
    Par gerald2545 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 28/01/2005, 18h54

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