JAR commande: il ne trouve pas la Main-Class !! [Résolu]

Signaler
Messages postés
20
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
6 septembre 2007
-
Messages postés
20
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
6 septembre 2007
-
1. Soit un simple Hello.java
import java.io.*;
import javax.swing.filechooser.*;
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello");
        File d = new File("C:/");
        String name = FileSystemView.getFileSystemView().getSystemDisplayName(d);
        System.out.println("name : "+name);
    }
}

Dans la console DOS, que manque-t-il à ma commande
>jar cvf Hello.jar Hello.class
pour obtenir un .JAR qui fonction avec la commande
>java -jar Hello.jar
Car j'obtiens le message d'erreur:
Failed to load Main-Class manifest attribute from Hello.jar

Lorsqu'il n'y a qu'une classe (à la racine), il devrait (?) trouvé le point d'entré (celle avec la méthode "main").
http://java.sun.com/javase/6/docs/technotes/tools/windows/jar.html

Mon JAR: http://www.enosis.ch/e6/img/Hello.JAR
Ma situation: une seule classe à la racine (sans package).

2. En Java, comment obtenir le n° de volume d'un HD, celui affiché avec la commande DOS "dir":
Le numéro de série du volume est B0F5-1A6F

Merci.

Dave

1 réponse

Messages postés
20
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
6 septembre 2007

Résolu le point 1, en passant par un fichier Manif.LOG et une commande JAR modifiée.
Utilisation: Glisser déposer un .CLASS sur ce .BAT et votre .JAR est fait.

CreerJAR.bat

:: Crée le JAR d'une Classe Java
@ECHO OFF
SET MF=Manif.LOG
IF /I '%~x1'=='.Class' GOTO CJAR
GOTO ERR

:CJAR
CD %~DP1
IF EXIST %~n1.JAR DEL /F /Q %~n1.JAR
ECHO.Main-Class: %~n1>%MF%
JAR -cfm "%~n1.JAR" %MF% *.Class
DEL /F /Q %MF%
GOTO Fin

:ERR
ECHO ERREUR: Pas un .Class

:Fin
ECHO.---------------------------
Pause

Reste le point 2.
En Java, comment obtenir le n° de volume d'un HD, celui affiché avec la commande DOS "dir":
Le numéro de série du volume est B0F5-1A6F

Merci.
Dave