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

avec Java Discussion :

comment lancer deux code java en même temps?


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut comment lancer deux code java en même temps?
    Bonjour,

    je suis débutant en java.
    je voudrai savoir si c'est possible de lancer deux programme java l'un après l'autre avec une temporisation en écrivant un troisième code.

    j'essaie de m'expliquer:

    code1.java fait crée un fichier texte dans un répertoire
    code2.java efface le fichier créé.
    code3.java doit lancer en premier code1.java et 10 seconde après doit lancer code2.java

    Est-ce-que ce genre d'opération est possible?
    Je pourrai faire juste un code mais la raison est que je voudrai réutiliser dans de prochain projet les même codes.
    Et aussi je veux éviter que le code se plante en allant trop vite.

    Merci

  2. #2
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 123
    Points : 239
    Points
    239
    Par défaut
    Oui, regarde ce qui se fait du coté de Runtime et Process.

    Par contre, sur la création du fichier et sa destruction, il va être difficile de synchroniser de façon correcte : tu es dépendant de l'OS dans ce cas là, et même une vérification sur l'existence du fichier ne semble pas suffisante... Il va falloir creuser un peu.

  3. #3
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    regardez du côté de http://java.developpez.com/faq/java/...angage_threads, si ce n'est déjà fait.

    Ensuite je pense qu'il va y avoir un problème de proprétaire de fichier.
    * code1 crée le fichier, il en est donc proprétaire. De ce fait, le système d'exploitation garantira que personne d'autre ne vienne lui casser les pieds !
    * code2 supprime le fichier, à mon avis il va se faire "engueuler" par le système d'exploitation (Code1 étant encore actif, il est propriétaire)

    Il faudrait donc que code1 disparaisse du fonctionnement afin de libérer le fichier, ainsi une autre application aurait le pouvoir d'en faire ce qu'elle veut...

    Faut voir...

    @ bientôt...
    @ bientôt...

    Salut & @+ sur 3W!

  4. #4
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    effectivment il risque d'il y avoir des problèmes de droits.
    Par contre je pense que vous pouvez donner des droits à la création du fichier
    Il faut voir sous unix et aussi sur les nouvelles versions de windows

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    Citation Envoyé par IDontLikeYou Voir le message
    Oui, regarde ce qui se fait du coté de Runtime et Process.
    franchement, c'est une très mauvaise solution, qui n'est en plus pas portable !

    Citation Envoyé par rtg57 Voir le message
    Il faudrait donc que code1 disparaisse du fonctionnement afin de libérer le fichier, ainsi une autre application aurait le pouvoir d'en faire ce qu'elle veut...
    Les threads pourquoi pas ? mais quel est le vrai objectif de la question.

    Citation Envoyé par ssmano Voir le message
    je voudrai savoir si c'est possible de lancer deux programme java l'un après l'autre avec une temporisation en écrivant un troisième code.
    Franchement, je suis pas sur de comprend ce que tu souhaites faire ?

    Citation Envoyé par ssmano Voir le message
    code1.java fait crée un fichier texte dans un répertoire
    Tu parles ici de créer un fichier et de le remplir ? ou juste de le créer ?
    A moins que tu parles de faire une API pour te simplifier l'écriture dans un fichier ?
    Si c'est effectivement, juste créer un fichier, je ne vois pas l'intérêt de faire une classe pour ca !

    Citation Envoyé par ssmano Voir le message
    code2.java efface le fichier créé.
    je ne vois pas l'intérêt de faire une classe juste pour ca !
    pour supprimer un fichier il faut deux lignes de code (dans l'hypothèse ou tu n'a pas déjà un objet File correspondant au fichier).
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    File source = new File("mon fichier");
    source.delete();
    Citation Envoyé par ssmano Voir le message
    code3.java doit lancer en premier code1.java et 10 seconde après doit lancer code2.java
    Et c'est la que je ne comprend plus !
    En admettant que tu as codé les classes 1 et 2, il n'y a pas de difficulté particulière a exécuter les 2 dans un même programme.
    Ton code 3 lance l'exécution du code1(créé le fichier et le ferme) et ensuite du code2 (supprime le fichier)


    Conclusion, peut tu être plus précis sur ce que tu veux faire exactement ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 123
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    bonjour,


    franchement, c'est une très mauvaise solution, qui n'est en plus pas portable !
    Je veux bien que tu développes là ...

  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par IDontLikeYou Voir le message
    Je veux bien que tu développes là ...
    par définition lancer des choses via la ligne de commande, ne sera pas portable, je veux dire par la que cela fonctionnera sur un système et pas sur un autre. Tout simplement !

    De plus ssmano parle de code1.java et code2.java, on peut donc en déduire que l'on a les sources ou au moins accès aux classes.
    Donc je ne vois aucun intérêt de passer par la ligne de commande pour exécuter ces programmes, il suffit juste de les avoir dans le classpath.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 123
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    par définition lancer des choses via la ligne de commande, ne sera pas portable, je veux dire par la que cela fonctionnera sur un système et pas sur un autre. Tout simplement !

    De plus ssmano parle de code1.java et code2.java, on peut donc en déduire que l'on a les sources ou au moins accès aux classes.
    Donc je ne vois aucun intérêt de passer par la ligne de commande pour exécuter ces programmes, il suffit juste de les avoir dans le classpath.
    Euh c'est faux sur la portabilité si tu sais configurer tes chemins...

    Maintenant je partais du principe qu'il avait besoin d'avoir deux "exécutables" distincts, à lui de nous dire ce qu'il en est.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par rtg57 Voir le message
    * code1 crée le fichier, il en est donc proprétaire. De ce fait, le système d'exploitation garantira que personne d'autre ne vienne lui casser les pieds !
    Y a que windows qui fait du locking sur les handles sans demander l'avis de l'application. Sur les autres OS, ce genre de locking doit être demandé explicitement.
    * code2 supprime le fichier, à mon avis il va se faire "engueuler" par le système d'exploitation (Code1 étant encore actif, il est propriétaire)
    Ce n'est pas le fait que le programme qui a créé/ouvert/écrit le fichier soit encore en fonctionnement qui joue, c'est le fait qu'il aie toujours des handles ouverts sur ces fichier (handle qu'on femer en faisant proprement un close() sur le stream associé). Encore un fois, ce genre d'emmerde, on les a que sous windows.

    Il faudrait donc que code1 disparaisse du fonctionnement afin de libérer le fichier, ainsi une autre application aurait le pouvoir d'en faire ce qu'elle veut...
    Non, il faut juste faire le close() quand vous avez fini le travail. Et encore une fois, que sous windows ....

  10. #10
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    Bonjour,
    en fait ma question était de savoir si on puvait lancer deux progamme java l'une après l'autre.
    Biensur je peux faire qu'un seul code avec les deux mais pour une raison de simplicité de code je voudrai les séparer distinctivement pour éviter des plantages.

    ne pourrait-on pas utiliser des timers ou slpee methods pour par ex lancer code1.java, on attend 10s pour qu'il finisse puis on lance code2.java.

    merci pour vos réponses précédentes

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour attendre qu'un process sois fini, c'est Process.waitFor(). comme on l'a dit, regarde du coté de Runtime.

  12. #12
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    Quand on dit que code1.java est propriétaire du fichier qu'il a créé d'accord mais une fois que le fichier est créé et placé dans un répertoire et qu'on fait close(), il n'est plus propriétaire.

    Donc code2.java peut accéder à ce répertoire et faire ce qu'il veut non?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    oui

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

Discussions similaires

  1. Exécuter deux codes behind en même temps
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/09/2014, 22h44
  2. Jboss 4.0.4 - Lancer deux instances jboss en même temps
    Par don'de dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 18/12/2008, 16h44
  3. Comment disposer deux formulaires sur la même ligne ??
    Par soad029 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/05/2007, 04h14
  4. lancer deux prgm C en même temps
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/05/2007, 09h35
  5. Comment lancer 2 serveur X en même temps avec Xorg ?
    Par narmataru dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 10/01/2006, 18h55

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