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 :

Barre de chargement ligne de commande java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Par défaut Barre de chargement ligne de commande java
    Bonjour tout le monde,

    Je voulais savoir si il était possible de faire une barre de chargement en java en ligne de commande (le démarrage de mon programme est assez long). Ça m'éviterais d'avoir un terminal noir en attendant qu'il finisse de charger le pré-programme.

    Merci!

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Cela peut être plus moins complexe selon la console. Déjà, il n'y a pas moyen de connaître à priori les dimensions d'une console (je parle du nombre de caractères en largeur). Ensuite, selon les consoles (et les OS), il y a ou pas des moyens de déplacer le curseur (en arrière en particulier), par exemple avec les codes ANSI (chercher ANSI escape sequences to move cursor), ce qui permettrait de dessiner une barre de progression en console avec un pourcentage d'avancement.
    Par exemple, sous Windows (10 en tout cas), on peut utiliser des \b pour revenir en début de ligne, dans qu'on a pas changer de ligne. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    		for(int i=0; i<=100; i++) { 
     
    			for(int j=0; j<i; j++) {
    				System.out.print(".");
    			}
    			for(int j=i; j<100; j++) {
    				System.out.print(" ");
    			}
    			System.out.printf("%3d",i);
    			System.out.print("%");
    			Thread.sleep(100);
    			for(int j=0; j<=103; j++) {
    				System.out.print("\b");
    			}
     
    		}
    		System.out.println();
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    for(int i=0; i<=100; i++) {
     
    			int j=0;
    			do {
     
    				if ( j>48 && j<52 ) {
    					System.out.printf("%3d",i);
    					System.out.print("%");
    					j=52;
    				}
    				else if ( j<i ) {
    					System.out.print("\u2588");
    				}
    				else {
    					System.out.print("\u2591");
    				}
     
    			} while( ++j<100);
    			Thread.sleep(100);
    			for(; j>=0; j--) {
    				System.out.print("\b");
    			}
     
    		}
    		System.out.println();
    Mais ces codes ne fonctionneront pas dans la console Eclipse par exemple (enfin, ils afficheront n'importe quoi).

    Donc en général, tu ne pourras pas faire un code unique qui fonctionne sur tous les OS/shell, donc il faut envisager simplement une liste de caractères affichés progressivement dans une même ligne sans pourcentage. Il faudrait découper ton process de démarrage en phase, et à chaque phase afficher un certain nombres de caractères System.out.print("XXX"); et à la fin faire un System.out.println() pour passer à la ligne et terminer la barre. Tu peux faire ça dans un thread à part si tu ne veux pas intervenir dans ton code de démarrage.

    Ou plutôt que de chercher à dessiner une barre, si tu peux découper ton process en phase, tu peux simplement afficher successivement des messages qui décrivent ces phases... genre...
    chargement fichier 1
    chargement fichier 2
    initialisaton
    traitement ...
    etc.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Par défaut
    Super idée et je pense que je vais utiliser les caractères! Mais il est vrai qu'à la base je voulais avoir une barre comme avec le wget en Shell

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ça fait des lustres que j'ai pas utilisé wget mais, si je me souviens bien, c'est des caractères la barre de progression de wget... un truc dans le genre :
    50%[============>               ]
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Par défaut
    Exactement! Sauf que le pourcentage est dynamique en Shell!

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par Thomas.V Voir le message
    Exactement! Sauf que le pourcentage est dynamique en Shell!
    Dynamique ? Tu veux dire que le pourcentage est calculé en fct du temps passé et du temps restant ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Connaitre la ligne de commande Java générée par Eclipse
    Par webspeak dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/08/2007, 12h05
  2. [Runtime] executer une ligne de commande cmd à partir de java
    Par mazizou dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 10/05/2007, 13h47
  3. Lancer une commande (type ligne de commande) depuis programme Java
    Par rprom1 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 15/12/2006, 12h06
  4. Comment lancer une ligne de commande dans un processus en Java.
    Par doyouknow56 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 13/05/2006, 11h55
  5. Ligne de commande Java
    Par jakinson dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 06/04/2006, 10h44

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