Créer un jar exécutable

Bonjour,

Je ne parviens pas à créer un jar exécutable.
Pouvez-vous m'aider s'il vous plaît ?

Fichier MANIFEST.MF qui est dans le dossier META-INF :

Main-Class: etienne.bintonum

Code :

package etienne.bintonum;

import java.util.Scanner;
import java.lang.String;

public class Bintonum
{
public static void main (String[ ] args)
{
int i, result, a;
String resultch;
char[] tab;
System.out.println("Donner un chiffre ou un nombre binaire");
result = (new Scanner(System.in)) .nextInt();
resultch = result + "";
tab = new char[resultch.length()];
tab = resultch.toCharArray();
result = 0;
resultch = "";
for (i=tab.length-1;i>=0;i--) {
a = Integer.parseInt(tab[i] + "");
result = (int) (result + a * Math.pow(2,tab.length-1-i));
}
System.out.println(result);
}
}

Merci beaucoup.

<config>Windows Vista / Firefox 11.0</config>

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Pour info, en regardant ton code, toute cette partie là :

    int result;
    String resultch;
    char[] tab;
    result = (new Scanner(System.in)) .nextInt();
    resultch = result + "";
    tab = new char[resultch.length()];
    tab = resultch.toCharArray();

    Peut se simplifier sur une ligne :
    char[] tab = String.valueOf(new Scanner(System.in).nextInt()).toCharArray();

    De plus, il est nettement plus efficace de faire :
    int a = tab[i] - '0';
    Que :
    int a = Integer.parseInt(tab[i] + "");
    Enfin, plutôt que de calculer Math.pow(2,tab.length-1-i) pour chaque i, il serait judicieux d'avoir une variable entière qui calcule incrémentalement la puissance.
    1. Modérateur
      Le fichier Manifest doit contenir le nom de la classe, et finir par un saut de ligne :

      workspace\etienne\bintonum\Bintonum.java

      workspace\manifest.txt :
      Main-Class: etienne.bintonum.Bintonum
      

      workspace\make.cmd :
      javac etienne\bintonum\Bintonum.java
      jar cvmf manifest.txt Bintonum.jar etienne\bintonum\Bintonum.class
      java -jar Bintonum.jar
      pause