# could not fin d the main class. program will now exit



## eicon11 (11. Mai 2008)

Hi dieser Fehler kommt, immer wenn ich mein java Programm auf dem Rechner von meinem Vater starten will. Bei mir funktioniert das Programm einwahnfrei, nur bei ihm nicht.
Meine Manifest.MF sieht folgendermaßen aus



> Manifest-Version: 1.0
> Class-Path: .
> Created-By: 1.6.0_03 (Sun Microsystems Inc.)
> Main-Class: Main



Allerdings ist die Java version die er auf seinem Pc drauf hat schon veraltet, (1.4. irgendwas) eine neue kann er aber nicht drauf machen, da er keine administrativen Rechte hat.
Kann mir jemand sagen wie ich dieses Problem lösen kann ? Oder was für Daten ihr braucht um dazu was zu sagen.


----------



## Wildcard (11. Mai 2008)

Eigentlich braucht man dafür den Stacktrace (das jar in der Konsole mit java -jar DeineJar.jar ausführen), aber in deinem Fall würde ich sagen, du hast nicht 1.4 kompatibel, sondern für 1.5 oder höher kompiliert.


----------



## eicon11 (11. Mai 2008)

Und wie kann ich für 1.4 kompilieren ? ich benutze NetBeans gibt es da irgendwas was man einstellen kann ?


----------



## Wildcard (11. Mai 2008)

Bei Eclipse heißt das Compliance Level. Schau mal ob es bei Netbeans ähnlich heißt.


----------



## L-ectron-X (11. Mai 2008)

Rechtsklick auf dein Projekt -> Properties -> Sources 
und dann in der JComboBox bei Source/Binary Format den gewünschten Level auswählen:


----------



## eicon11 (11. Mai 2008)

Ok, hab ich gefunden, allerdings kommt jetzt ein Fehler


> java.lang.UnsupportedClassVersionError: Main (Unsupported major.minor version 50.0)
> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
> ...


Kann es sein dass die Swing Elemente in java 1.4 nicht angezeigt werden können ?


----------



## eicon11 (11. Mai 2008)

Ok wenn ich mir den Code so angucke bin ich mir eigentlich ziemlich sicher das 1.4 swing nicht unterstützt :-( es gibts nicht zufällig ne Möglichkeit alles in AWT zu konvertieren ohne das ich alles neu machen muss ? *hoff*


----------



## eicon11 (11. Mai 2008)

Oder von mir aus auch, dass ich irgendwie die komplette Swing Palette in das Progrmm importiere, die Hauptsache ist nur das ich nichts installieren muss.


----------



## L-ectron-X (12. Mai 2008)

Swing ist in Java seit der Version 1.2 standardmäßig Teil des JDK. Für ältere Versionen gibts ein Swing-PlugIn.
Nach Java 1.4 kamen IMHO keine neuen GUI-Elemente ins JDK. Dein Problem hat meiner Meinung nach nichts mit Swing zu tun. Vielmehr wurde der Bytecode in Java 1.5 durch neue Features so verändert, dass er nicht mehr mit älteren JREs ausgeführt werden kann. Du musst also alle .class-Dateien entfernen und komplett neu kompilieren. Wenn's gar nicht geht, kannst du immer noch das JDK 1.4.2 installieren, NetBeans bekanntmachen und erneut kompilieren.



			
				FAQ hat gesagt.:
			
		

> - UnsupportedClassVersionError
> Wird geworfen wenn versucht wird eine Klasse zu laden, das Format des Bytecodes aber nicht mit dem, der aktuellen Java Version übereinstimmt. Beispiel:
> Exception in thread "main" java.lang.UnsupportedClassVersionError: <Klasse>
> (Unsupported major.minor version 49.0)
> ...


----------



## eicon11 (12. Mai 2008)

Ok, jetzt kann ich es kompilieren, allerdings lässt sich die .jar datei nicht ausführen, also bei doppelklick passiert einfach nichts.Wenn ich die Datei allerdings in NetBeans ausführe startet sie ganz normal. NetBeans hat jetzt im dist Ordner noch einen lib Ordner erstellt wo eine swing-layout-1.0.3.jar Datei drinn ist. die Manifest.MF sieht so aus


> Manifest-Version: 1.0
> Ant-Version: Apache Ant 1.7.0
> Created-By: 1.6.0_03-b05 (Sun Microsystems Inc.)
> Main-Class: Main
> ...


Und wenn ich es bei meinem Vater ausführen will kommt ein Fatal Error und das Programm wird geschlossen.
1.4.2 hab ich schon installiert, wenn ich es aber als Java Platform auswähle werden mir die ganzen Swing-Elemente Rot angezeigt das die sachen alle nicht existieren.


----------



## Maeher (12. Mai 2008)

eicon11 hat gesagt.:
			
		

> 1.4.2 hab ich schon installiert, wenn ich es aber als Java Platform auswähle werden mir die ganzen Swing-Elemente Rot angezeigt das die sachen alle nicht existieren.


Schau dir mal den Quelltext an, wo genau die Fehler auftreten, ich vermute es kommen einfach irgendwelche Syntaxelemente vor, die in Java 1.4 noch nicht existierten (z.B. @Override o.ä.). Ich habe Swing schon öfters unter Java 1.4.X laufen lassen.


----------



## eicon11 (12. Mai 2008)

Das Problem ist aber, das die roten Zeilen in dem von NetBeans geschütztem GUI-bereich ist, d.h. ich kann da nichts verändern ich zeige euch mal wie dass aussieht : (Alles was unterstrichen ist wird rot angezeigt

     javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
  jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                        .addComponent(startDrucker)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                    .addComponent(eingabeDrucker, javax.swing.GroupLayout.DEFAULT_SIZE, 736, Short.MAX_VALUE))
                .addContainerGap())
        );


Der Fehler ist soweit ich das überblickt habe immer etwas mit "package javax.swing.GroupLayout does not exist"
und die daraus resultierenden, wie Variable in javax ... does not exist usw.


----------



## L-ectron-X (12. Mai 2008)

Du musst neben der erzeugten Jar-Datei auch das Verzeichnis lib mit der darin befindlichen jar-Datei ausliefern. Du hast offenbar deine Komponenten mit Matisses Standard-LayoutManager "Freedesign" zusammengeklickt.


----------



## Maeher (12. Mai 2008)

eicon11 hat gesagt.:
			
		

> Der Fehler ist soweit ich das überblickt habe immer etwas mit "package javax.swing.GroupLayout does not exist"
> und die daraus resultierenden, wie Variable in javax ... does not exist usw.


GroupLayout verwendet NetBeans standardmäßg als Layout, dieses liegt in NetBeans normalerweiße als Bibliothek unter Libraries im Projektverzeichnis. Vielleicht ist da irgendwas schiefgegangen.
Du kannst auch einfach versuchen soweit möglich auf NullLayout umzustellen, damit hast du auf keinen Fall Probleme mit irgendwelchen Libs.


----------



## eicon11 (12. Mai 2008)

hmm, ich hab jetzt einfach das Layout neu gestaltet, also erst auf 1.4 umgestellt und dann das Layout einfach nochmal neu gemacht mit den gleichen Sachen.Jetzt funktioniert es auch auf dem Rechner von meinem Vater.
Danke euch für die Hilfe !


----------

