Créer un jar exécutable

Étienne9 Messages postés 1090 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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

KX Messages postés 19031 Statut Modérateur 3 020
 
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
0
KX Messages postés 19031 Statut Modérateur 3 020
 
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.
0