# Hauptklasse konnte nicht gefunden werden



## Exodevil (16. Dez 2015)

Hallo,

ich programmiere seit einiger Zeit in Java und habe immer Eclipse verwendet. Jetzt bin ich allerdings so weit, dass ich meine Programme gerne auch mal über ein batchfile oder manuell im cmd ausführen lassen will.

Nun zu meinem Problem
Das Compilieren über javac Encrypt.java funktioniert einwandfrei.
Die class-Datei wird auch erstellt. Wenn ich jetzt allerdings mit java Encrypt versuche das Programm zu starten, kommt die Fehlermeldung "Fehler: Hauptklasse Encrypt konnte nicht gefunden oder geladen werden"

Ich hab auch schon einige Foren durchsucht, aber nichts konnte mir wirklich weiterhelfen. Meine main-Methode stimmt, meine Path-Variable meines Wissens auch.

Hier noch der Code vom Programm:

```
package passwort;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Encrypt {
    public static void main(String[] args) {
        String passwort = "abcdefg";
     
        try {
            String hash = toHash(passwort);
            System.out.println(hash);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
 
    private static String toHash(String password) throws NoSuchAlgorithmException{
        MessageDigest digest = MessageDigest.getInstance("SHA-1");
        digest.update(password.getBytes());
     
        byte[] bytes = digest.digest();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < bytes.length; i++) {
            sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
        }     
        return sb.toString();
    }
}
```

Hat da jemand eine Lösung dafür?


----------



## InfectedBytes (16. Dez 2015)

man muss den vollständigen namen angeben, da deine klasse in einem package liegt. musst du eben passwort.Encrypt benutzen


----------



## Exodevil (16. Dez 2015)

Hat leider nichts gebracht. Immernoch der gleich Fehler.


----------



## InfectedBytes (16. Dez 2015)

dann startest du es vermutlich aus dem falschen Ordner.
Angenommen du hast diesen Pfad:
MeinPfad/passwort/Encrypt.class
der java Aufruf erfolgt aus dem Wurzelverzeichnis, in deinem Falls also aus dem "MeinPfad" Verzeichnis


----------



## Exodevil (16. Dez 2015)

Funktioniert einwandfrei. Vielen Dank.
Wieso geht dann javac aus dem passwort-Verzeichnis aber java nicht? Nur so für mein Verständnis


----------



## Georges (14. Mrz 2022)

InfectedBytes hat gesagt.:


> man muss den vollständigen namen angeben, da deine klasse in einem package liegt. musst du eben passwort.Encrypt benutzen


Danke. Das stand leider nicht im Oracle Tutorial. 
Gruß Georges.


----------



## KonradN (14. Mrz 2022)

Exodevil hat gesagt.:


> Wieso geht dann javac aus dem passwort-Verzeichnis aber java nicht? Nur so für mein Verständnis


javac möchte einen Dateinamen. Diesen kannst Du relativ zu dem aktuellen Pfad angeben.

java will einen Klassennamen. Und der wird dann über den Classloader gesucht. Dabei ist dann das Verzeichns, von dem aus gesucht wird - so man es nicht anders spezifiziert - das aktuelle Verzeichnis.


----------



## mihe7 (14. Mrz 2022)

6 years and counting...


----------



## temi (14. Mrz 2022)

mihe7 hat gesagt.:


> 6 years and counting...


Manche Themen bleiben eben einfach immer aktuell


----------



## KonradN (14. Mrz 2022)

mihe7 hat gesagt.:


> 6 years and counting...


Zombies wollen gefüttert werden  habe ich ganz übersehen, dass der Thread schon so alt war


----------



## mihe7 (14. Mrz 2022)

temi hat gesagt.:


> Manche Themen bleiben eben einfach immer aktuell


Ja, das Schlimme ist, dass diese Fragen gefühlt alle zwei Tage aufschlagen.


----------



## Jw456 (14. Mrz 2022)

Das ist der Nachteil an dem Forum das hier Threads nicht geschlossen werden auch nicht von den admins.


----------



## temi (14. Mrz 2022)

Jw456 hat gesagt.:


> Das ist der Nachteil an dem Forum das hier Threads nicht geschlossen werden auch nicht von den admins.


Manchmal kann es schon sinnvoll sein, dass man auch bei einem älteren Thema noch mal nachfragen kann. Wobei hier ja keine eigentliche Frage gestellt wurde auf die es zu antworten galt.


----------



## Jw456 (15. Mrz 2022)

temi hat gesagt.:


> Manchmal kann es schon sinnvoll sein, dass man auch bei einem älteren Thema noch mal nachfragen kann. Wobei hier ja keine eigentliche Frage gestellt wurde auf die es zu antworten galt.


Ja und genau bei soetwas gibt es in anderen Foren für admis die Möglichkeit den Thread zu zumachen. 
Hier nicht.


----------

