Java - Cannot find main class. Program will exit.

onfreak

Cadet 2nd Year
Registriert
Nov. 2007
Beiträge
21
Hallo alle miteinander.

Ich wende mich an euch weil ich ein seltsames Problem habe.
Wir haben ein Programm (Javabasiert) das von einem Netzwerkshare (Server) gestartet wird und von mehreren Benutzern verwendet werden kann.

Wenn ich als (Domänen-) Administrator am Client-PC angemeldet bin, kann ich das Programm vom Netzwerkshare ausführen.
Wenn sich allerdings der normale Benutzer anmeldet kommt die folgende Fehlermeldung

"Cannot find main class. Program will exit."

Ich hab mir schon gedacht, dass es mit Berechtigungen zu tun hat. Aber ich hab keine Ahnung wo man hier ansetzten soll, bzw welche Verzeichnisse ich überprüfen muss.

Schon mal vielen Dank im Voraus!

lg
 
Beschreib mal, wie das Javaprogramm gestartet wird (Mausklick, cmd, batch-Datei,...)
 
Was genau spuckt denn die JVM aus, wenn du es aus der Kommandozeile startest?
 
Zeigt Classpath bei beiden Benutzern auf die selben Dateien/Verzeichnisse?
 
Klingt für mich spontan nach einer Jar in der die MANIFEST.MF nicht oder falsch gesetzt ist. Wurde das Projekt mit Maven erstellt?
 
Klingt für mich spontan nach Java 7 und dem fehlenden Eintrag in der Registry.
 
Hallo,

Erstmal danke für die schnellen Rückmeldungen.
Kommandozeile kann ich jetzt auf die schnelle nicht testen.
Das Programm wird aus einer Batch datei gestartet. Und zwar so:

Code:
start ..\..\bin\jre2.0\bin\javaw -classpath "..\lib\sys.zip;..\lib\ora.jar;..\lib\SqlServer2000.jar;..\lib\JavaRequest.jar;..\lib\CrefoScore.jar;..\lib\CrefoScoreClient.jar" de.creditreform.crefoscore.ui.ClUiBasismodul

Komisch ist aber, wenn ich das Programm als Administrator ausführe alles funktioniert.

@DJ_We$t: kann es sein dass der Registry-Key bei den Usern fehlt?
 
Ja das kann sein, je nachdem wie die JRE installiert wurde.
 
benneque schrieb:
Klingt für mich spontan nach einer Jar in der die MANIFEST.MF nicht oder falsch gesetzt ist. Wurde das Projekt mit Maven erstellt?

Die Mainklasse wird über die Kommandozeile mitgegeben.

DJ_We$t schrieb:
Klingt für mich spontan nach Java 7 und dem fehlenden Eintrag in der Registry.

Die Registry ist für das Java-BrowserPlugin und verschiedene Anwendungen (die die Java-Runtime suchen) wichtig.
Wenn ein Java-Programm über die Kommandozeile mit absoluten/relativen Pfaden gestartet wird, hat die Registry keine Auswirkung.

onfreak schrieb:
Hallo,

Erstmal danke für die schnellen Rückmeldungen.
Kommandozeile kann ich jetzt auf die schnelle nicht testen.
Das Programm wird aus einer Batch datei gestartet. Und zwar so:

Code:
start ..\..\bin\jre2.0\bin\javaw -classpath "..\lib\sys.zip;..\lib\ora.jar;..\lib\SqlServer2000.jar;..\lib\JavaRequest.jar;..\lib\CrefoScore.jar;..\lib\CrefoScoreClient.jar" de.creditreform.crefoscore.ui.ClUiBasismodul

Komisch ist aber, wenn ich das Programm als Administrator ausführe alles funktioniert.

@DJ_We$t: kann es sein dass der Registry-Key bei den Usern fehlt?

Nochmals, Registry = hier egal.

In welchem Verzeichnis liegt die bat/cmd -Datei?
Kannst du evtl. mal den Verzeichnisbaum posten?
Kann es sein, dass bei den Benutzern ein anderer Laufwerksbuchstabe als beim Administrator verwendet wird?

Alternative:

1. du kopierst das jre2.0 Verzeichnis an einen anderen Ort (Unterverzeichnis \test\jre2.0)
2. die sys.zip und alle anderen .jar-Dateien in den Ordner \test\jre2.0\lib
3. eine start.cmd im Ordern jre2.0\bin mit dem Inhalt:
Code:
java.exe de.creditreform.crefoscore.ui.ClUiBasismodul

Teste mal.
 
Alternativ mal mit javara die älteren Java-Versionen entfernen lassen ...

Grüße
 
Zurück
Oben