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 :

Script à l'application


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Script à l'application
    Bonjour à tous,

    j'aimerai savoir comment je pourrai faire pour passer de mon script qui fonctionne sur Eclipse à une application. Ce que je veux c'est juste que l'application lance le programme et affiche exactement ce qu'il y a sur la console de Eclipse. C'est possible ?

    NB : dans mon script je n'ai pas codé la partis fenêtré cela peux poser problème ?

    Je suis nouveau dans le domaine, merci d'être compréhensifs !

    Cordialement

  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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si par "script", tu parles de code Java, utilise le menu export pour créer un jar. Si tu choisis l'option Jar executable (en anglais "Runnable Jar File"), il pourra être directement exécuté en console par la commande "java -jar <lenomdetonjar>".
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Euh ça ne marche pas ...

  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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si tu n'es pas plus explicite que ça, je ne vais pas pouvoir faire grand chose, voire rien, en fait.
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Pour pus de simplicité,

    Pouvez vous faire un fichier exécutable de ce code ? J'ai essayé via ce site :

    http://baptiste-wicht.developpez.com...s/executables/

    La méthode la plus basique est de copier/coller le code sur un .txt (Note) puis de l'enregistrer en .bat mais ce la ne fonctionne pas de même pour la méthode de passer par un jar Runnable et le jar file ... j'ai essayé plusieurs tuto et rien ne fonctionne...

    Je me demande si il y a pas un problème avec mon code au final, pourtant il fonctionne très bien sur ECLIPSE.

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    import java.text.DecimalFormat;
    import java.util.Scanner;
     
    public class Heure {
     
    	public static void main(String [] args) {
    		DecimalFormat nf = new DecimalFormat("00");
     
    		int arriveArray[] = demandeHeureArrive();
    		int heureArrive=arriveArray[0];
    		int minArrive=arriveArray[1];
     
    		int departMidiArray[]=demandeHeureDepartMidi();
    		int heureDepartMidi=departMidiArray[0];
    		int minDepartMidi=departMidiArray[1];
     
    		int arriveMidiArray[]=demandeHeureArriveMidi();
    		int heureArriveMidi = arriveMidiArray[0];
    		int minArriveMidi = arriveMidiArray[1];
     
    		int departArray[]=demandeHeureDepart();
    		int heureDepart = departArray[0];
    		int minDepart = departArray[1];
     
    		int heureMatinArray[]=heureFait(heureArrive,minArrive,heureDepartMidi,minDepartMidi);
    		System.out.println("Vous avez effectué "+heureMatinArray[0]+" h "+nf.format(heureMatinArray[1])+" min de travail ce matin.");
     
    		int heureMidiArray[]=heureFait(heureDepartMidi,minDepartMidi,heureArriveMidi,minArriveMidi);
    		System.out.println("Vous avez fait "+heureMidiArray[0]+" h "+nf.format(heureMidiArray[1])+" min de pause ce midi.");
     
    		int heureSoirArray[]=heureFait(heureArriveMidi,minArriveMidi,heureDepart,minDepart);
    		System.out.println("Vous avez effectué "+heureSoirArray[0]+" h "+nf.format(heureSoirArray[1])+" min de travail ce soir.");
     
    		int heureTotalArray[]=heureTotal(heureMatinArray[0],heureMatinArray[1],heureSoirArray[0],heureSoirArray[1]);
    		System.out.println("Vous avez fait "+heureTotalArray[0]+" h "+nf.format(heureTotalArray[1])+" min aujourd'hui.");
    		int heureTotal =heureTotalArray[0]; 
    		int minTotal = heureTotalArray[1];		
     
    		int heureSuppArray[] = heureSupp(heureTotal,minTotal);
    		if(heureTotalArray[0]>=8){
    			System.out.println("Vous avez fait "+heureSuppArray[0]+" h "+nf.format(heureSuppArray[1])+" min supplémentaire aujourd'hui");
    		}else{
    			System.out.println("Il vous manque "+heureSuppArray[0]+" h "+nf.format(heureSuppArray[1])+" min pour faire vos heures aujourd'hui");
    		}
    	}
     
    	public static int [] heureSupp(int a,int b){
    		int heure=a*60;
    		int min=b;
    		min=min+heure;
    		heure=min/60-8;
    		min=min%60;
    		if (heure<0){
    			heure++;
    			min=60-min;
    		}
    		return new int[] {heure,min};
    	}
     
    	public static int [] heureTotal(int a,int b,int c,int d){
    		int heure = a+c;
    		int min = b+d;
    		if (min>=60){
    			heure++;
    			min=min-60;
    		}
    		return new int [] {heure,min};
    	}
     
    	public static int[] heureFait(int a,int b,int c,int d){
    		int heure=c-a;
    		int min=d-b;
    		if(d<b){
    			min=60+d-b;
    			heure--;
    		}
    		return new int[] {heure,min};
    	}
     
    	public static int[] demandeHeureArrive(){
    		String heureArriveString = heureArrive();
    		int heureArrive = heureToMin(heureArriveString); 
    		int minArrive = minToMin(heureArriveString); 
    		while ((heureArrive>23) || (minArrive>60)) {
    			System.out.println("Mauvaise saisie de l'heure, veuillez recommencer s'il vous plait !");
    			heureArriveString = heureArrive();
    			heureArrive = heureToMin(heureArriveString); 
    			minArrive = minToMin(heureArriveString); 
    		}
    		return new int[] {heureArrive, minArrive};
    	}
     
    	public static int[] demandeHeureDepartMidi(){
    		String heureDepartMidiString = heureDepartMidi();
    		int heureDepartMidi=heureToMin(heureDepartMidiString);
    		int minDepartMidi=minToMin(heureDepartMidiString);
    		while ((heureDepartMidi>23) || (minDepartMidi>60)) {
    			System.out.println("Mauvaise saisie de l'heure, veuillez recommencer s'il vous plait !");
    			heureDepartMidiString = heureDepartMidi();
    			heureDepartMidi=heureToMin(heureDepartMidiString);
    			minDepartMidi=minToMin(heureDepartMidiString);
    		}
    		return new int [] {heureDepartMidi, minDepartMidi};
    	}
     
    	public static int[] demandeHeureArriveMidi(){
    		String heureArriveMidiString = heureArriveMidi();
    		int heureArriveMidi = heureToMin(heureArriveMidiString); 
    		int minArriveMidi = minToMin(heureArriveMidiString);
    		while ((heureArriveMidi>23) || (minArriveMidi>60)) {
    			System.out.println("Mauvaise saisie de l'heure, veuillez recommencer s'il vous plait !");
    			heureArriveMidiString = heureDepartMidi();
    			heureArriveMidi = heureToMin(heureArriveMidiString); 
    			minArriveMidi = minToMin(heureArriveMidiString);
    		}
    		return new int [] {heureArriveMidi,minArriveMidi};
    	}
     
    	public static int[] demandeHeureDepart(){
    		String heureDepartString = heureDepart();
    		int heureDepart=heureToMin(heureDepartString);
    		int minDepart=minToMin(heureDepartString);
    		while ((heureDepart>23) || (minDepart>60)) {
    			System.out.println("Mauvaise saisie de l'heure, veuillez recommencer s'il vous plait !");
    			heureDepartString = heureDepart();
    			heureDepart=heureToMin(heureDepartString);
    			minDepart=minToMin(heureDepartString);
    		}
    		return new int[]{heureDepart,minDepart};
    	}
     
    	public static String heureArrive(){
    		Scanner str = new Scanner(System.in);
    		System.out.println("Entrer l'heure d'arrivée de ce matin ");
    		String heure = str.nextLine();
    		return heure;
    	}
     
    	public static String heureDepartMidi(){
    		Scanner str = new Scanner(System.in);
    		System.out.println("Entrer l'heure de départ de ce midi ");
    		String heure = str.nextLine();
    		return heure;
    	}
     
    	public static String heureArriveMidi(){
    		Scanner str = new Scanner(System.in);
    		System.out.println("Entrer l'heure d'arrivée de ce midi ");
    		String heure = str.nextLine();
    		return heure;
    	}
     
    	public static String heureDepart(){
    		Scanner str = new Scanner(System.in);
    		System.out.println("Entrer l'heure de départ du soir ");
    		String heure = str.nextLine();
    		return heure;
    	}
     
    	public static int heureToMin(String heureMinute){
    		String[] splited = heureMinute.split("h", 3);
    		String heure = splited [0];
    		int a= Integer.parseInt(heure);
    		return a;
    	}
     
    	public static int minToMin(String heureMinute){
    		String[] splited = heureMinute.split("h", 3);
    		String minute = splited [1];
    		int b= Integer.parseInt(minute);
    		return b;
    	}
     
    }

    Merci pour votre aide !!!!!!!!!

  6. #6
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le code que tu montres dans ton message s'appelle un code source Java. En Java, comme dans beaucoup de langage, mais pas tous (en particulier, ce n'est pas le cas des langages de script), ce code source n'est pas directement exécutable. Tu as l'impression que si, mais c'est Eclipse qui te trompe en simplifiant les choses. En Java, un code source est mis dans un fichier texte avec l'extension .java. Pour exécuter ce code Java, il faut le compiler : pour simplifier (tu verras ça peut-être plus tard, quand tu en auras appris un peu plus sur Java), il s'agit de le transformer en un autre fichier, qui lui a l'extension .class. Eclipse le fait automatiquement pour toi lorsque tu lances ton programme. Si ça t'intéresse, et que tu veux voir ce fichier dans Eclipse, tu peux aller dans la vue Navigator, et regarder dans ton projet, il y a normalement un dossier bin (le nom par défaut), dans lequel tu verras le Heure.class que Eclipse e créé pour toi.

    Ensuite, pour exécuter ce .class, il faut faire appel à une jvm : pour faire ça, en ligne de commande, on tape la commande java lenomdelaclasse, ou nomdelaclasse est le nom du fichier .class, sans le .class de la fin, soit dans ton cas java Heure. Eclipse le fait automatiquement pour toi (là, je simplifie, mais c'est l'idée). Le tutoriel que tu évoques, et la manipulation dont tu parles (copier java MaClasseMain dans un txt et le renommer en bat, et non pas le contenu du fichier .java (le code source)), c'est pour faire un script shell qui t'évite de taper la commande à chaque fois et qui te permet également d'avoir un fichier sur lequel tu peux double-cliquer depuis l'explorateur. C'est une solution de base, mais qui a les limites de sa simplicité (je ne rentrerais pas dans les détails pour ne pas t'embrouiller). Bien sûr, pour que cela fonctionne, il faut que le fichier .class soit mis dans le dossier où tu lances la commande (ce qui fait déjà une première contrainte rédhibitoire).

    La solution que je t'ai donnée simplifie encore plus : en fait, elle est plutôt prévue lorsqu'il y a plusieurs fichiers .class, et qu'on veut pouvoir n'avoir qu'un seul fichier unique, mais elle fonctionne, à fortiori, quand on a qu'un seul fichier .class comme toi. Il s'agit de créer un fichier .jar (une sorte de zip). Eclipse simplifie la création de fichier Jar par son menu Export : il suffit de cliquer sur le menu, de choisir le nom du fichier .jar (et le dossier où on va le créer), et, de lancer. Un fichier .jar n'est pas forcément exécutable. Mais il peut l'être. Dans Eclipse, il faut justement choisir l'option Runnable JAR File. Tu désignes la classe qui va servir de démarrage, c'est-à-dire la classe avec la méthode main : dans ton cas c'est simple, il n'y a qu'une seule classe Heure, donc c'est cette classe. Mais Eclipse simplifie aussi d'autres élèments, que tu n'utilises pas toi, mais c'est comme ça : donc au lieu de choisir la classe avec la méthode main, tu choisis en fait la configuration d'exécution (en anglais Launch Configration), qui en général porte le nom de ta classe sous Eclipse (suivi d'un tiret et du nom du projet). Ensuite, tu cliques finish et le jar est créé.

    Avec un jar exécutable, tu peux double-cliquer dessus directement dans l'explorer pour l'exécuter (attention, toutefois, il doit avoir une interface graphique pour voir quelquechose : ton programme n'en as pas, donc tu ne verras rien). On peut également le lancer en console, comme je te l'ai dit, par la commande java -jar fichier.jar où fichier.jar est le nom du fichier jar que tu as exporté.

    Il y a bien un ou deux problèmes dans ton code, mais pas qui l’empêcherait de s'exécuter. S'il s'exécute sous Eclipse, c'est qu'il est compilable, donc il s'exécutera n'importe où il y a une JVM. Toutefois, il y des "mais" :

    • "mais" il peu causer des erreurs à l'exécution (par exemple, il a besoin d'un fichier externe qu'il ne trouve pas), mais ce n'est pas le cas pour ton programme
    • "mais" il peut aussi refuser de démarrer avec la JVM qui est trouvée par défaut
      en effet, si un programme Java est compilé par exemple en Java 1.7, il ne pourra pas être exécuté avec une JVM 1.6


    Tu peux vérifier quelle est le JVM qui va s'exécuter si tu lances la commande java, tapes en console java -version. Il faut évidemment que la version affichée soit compatible avec celle utilisée pour compiler dans Eclipse, que tu peux voir dans projet dans Eclipse (item JRE System Library : à la fin il y a la version, parce exemple JavaSE-1.8, pour Java 8)
    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.

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/07/2010, 19h19
  2. Ajouter des scripts à votre application Qt
    Par johnlamericain dans le forum Qt
    Réponses: 0
    Dernier message: 19/11/2009, 20h53
  3. Réponses: 1
    Dernier message: 09/01/2008, 14h02
  4. script démarre application windows
    Par Luffy_San dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 06/07/2007, 16h53
  5. Lancer script ou application au demarrage d'une machine distante
    Par Sendo dans le forum Administration système
    Réponses: 2
    Dernier message: 29/05/2006, 12h08

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