Could not find the main class

DerGrinch

Grünschnabel
Erstmal hallo alle miteinander! Ist mein erster Beitrag hier! :)

Ich bin dabei mein erstes Java Programm mit SWT GUI zu schreiben und
hab ein Problem, zu dem ich einfach keine Lösung finde:

Auf meinem PC ist das Ganze kein Problem. Das Programm lässt sich
von Eclipse aus entweder mit einer Manifest Datei oder einfach per
FatJar zu einer .jar datei packen, und lässt sich auch überall auf dem
PC starten.

Dummerweise klappt das aber auch nur an meinem Rechner. An allen
anderen PCs an denen ich es jetzt versucht habe kommt eine Fehlermeldung
von der Java Virtual Machine: "Could not find the main class. Programm will exit."

Hat jemand eine Ahnung woran das liegt und wie ich das beheben kann?
Ihr würdet mir sehr weiter helfen!

Liebe Grüße,

Jan
 
Hi. Willkommen bei tutorials.de!

Wie startest du denn dein Programm?

Wenn das Manifest korrekt eingebettet ist, sollte es so funktionieren:
Code:
java -jar deinprogram.jar
Gruß
 
Mhm.... wenn ich das so starte, dann bekomme ich eine
java.io.FileNotFoundException wegen der Bilder, die ich benutze.

Zur Zeit binde ich die in das Programm ein, indem ich z.B. sage:

Code:
Image dcImage = new Image(display, "C:\\eclipse\\workspace\\usw\\dc.png");

Aber das scheint ja nicht die beste Idee zu sein! Wie kann man
das denn besser lösen?

Gibt es da eine Möglichkeit die mit in die .jar Datei zu packen?
Fände das ganz praktisch wenn alles in einer Datei wäre...
 
hi DerGrinch,
Du kannst eigetnlich Deine Bilde mit in Dein Jar packen, ja!
Du kannst dann z.B. mittels "Klassen-Resource" darauf wieder verweisen

Beispiel wobei hier meinBild innerhalb der jar-Datei im Pfad der Class-Datei von MeineKlasse wäre:
Java:
public class MeineKlasse
{
    public void meineFunktion ()
    {
        ....
        ImageIcon ic = new ImageIcon(MeineKlasse.class.getResource("meinBild.jpg"));
        .....
    }
}

Der Ordnung halber bietet sich auch an ein Resource-Unterverzeichnis zu haben wo Du die Resourcen, z.B. Bilder reinbringst. In solchen Fällen bietet sich vielleicht auch an dieses Verzeichnis direkt in den Pfad Deiner Hauptklasse zu bringen

Beispiel:
Java:
public class MeineKlasse
{
    public void meineFunktion ()
    {
        ....
        ImageIcon ic = new ImageIcon(HauptKlasse.class.getResource("resource/meinBild.jpg"));
        .....
    }
}

handelt es sich umer viele Bilder könnte es gut sein URL-Konstanten in einem Interface zu definieren.
 
Zuletzt bearbeitet:
Perfekt, damit ist mein Problem gelöst.

Also war es gar kein Problem mit dem Packen an sich, sondern einfach nur,
dass die Bilder auf anderen Rechnern nicht gefunden werden konnten weil
die Pfadangabe statisch war.

Aber die Blöde Fehlermeldung sagte halt nur "could not find the main class"
anstatt mir zu sagen, dass die Bilder nicht gefunden werden können.

Hab jetzt jedenfalls alle Referenzen geändert, neu gepackt und siehe da:
jetzt funktioniert die .jar datei auch auf anderen PCs!

Vielen dank für die super schnelle und super kompetente Hilfe!
 

Neue Beiträge

Zurück