2013-05-22 5 views
13

Wenn ich start.jar laufen bekomme ich folgende Fehlermeldung:kann nicht ausgeführt Anlegestelle start.jar

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/ 
jetty/start/Main : Unsupported major.minor version 51.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(Unknown Source) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$000(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: org.eclipse.jetty.start.Main. Program will exit. 

Nach der Jetty Dokumentation (http://www.eclipse.org/jetty/documentation/current/quickstart-running-jetty.html), alles, was ich tun müssen, um die Zip-Download, zu extrahieren, und starte start.jar. Google scheint mir keine Leute mit ähnlichen Problemen zur Verfügung zu stellen.

Danke, Sam

+1

Welches JDK verwenden Sie? – CloudyMarble

+0

Version 1.6.0_35 –

+0

welche Jetty Version? – CloudyMarble

Antwort

10

Werfen Sie einen Blick auf die folgende discussion und speziell auf die populärste Antwort.

In Kürze haben Sie ein Problem der Klassenversion Inkompatibilität. Ihr Steg wird mit dem Compiler von Java 7 kompiliert, während Sie versuchen, ihn mit JVM der vorherigen Version auszuführen. Die Lösung ist: Gehen Sie weiter zu Java 7: Aktualisieren Sie Ihr JDK und konfigurieren Sie Eclipse, um Java 7 zu verwenden und die neuen Funktionen zu genießen.

+1

Ah, danke. Leider habe ich nicht die Berechtigung, das JDK zu aktualisieren, daher nehme ich Jetty stattdessen zu einer früheren Version zurück. –

+3

Wie finde ich die richtige frühere Version? unjar start.jar und schauen Sie in META-INF/MANIFEST.MF für Build-Jdk aber sogar Steg-Version 7.6.14 wurde kompiliert mit 1.7.0_25 – ericslaw

2

java.lang.UnsupportedClassVersionError passiert wegen eines höheren JDK während der Kompilierzeit und niedriger JRE während der Laufzeit.

Ihre JRE wurde also auf die Version der kompilierten Zeitversion von JDK aktualisiert.

3

Die neueste Version von Jetty muss Version 1.7 der JVM. Aktualisieren Sie Ihre JVM oder verwenden Sie eine ältere Version von Jetty (nicht empfohlen).

Sie können die Jetty-Versionen finden Sie hier: http://www.eclipse.org/jetty/documentation/9.0.2.v20130417/what-jetty-version.html#d0e75

+0

Dies ist die Hälfte der 'verwenden Sie eine ältere Jetty-Version' Lösung. Es impliziert, dass Jetty8.x, das aus der Quelle mit vorhandener JRE erstellt wurde, funktioniert. – ericslaw

0

Der Java-Compiler ist eine erweiterte Version, und die virtuelle Maschine nicht. Machen Sie es einheitlich, indem Sie entweder Ihre JVM aktualisieren oder Ihren Compiler (JDK) herabstufen. Ich empfehle die zweite Option. Viel Glück !!!!

0

Dies kann auch passieren, wenn Sie zum Beispiel Jetty 8.1 Server konfigurieren, aber Ihr Jetty-Installationsverzeichnis ist höher als das, zum Beispiel 9.1.

So laden Sie die richtige Jetty-Installation, in Eclipse gehen Sie zu Windows -> Einstellungen -> Server -> Jetty -> Bearbeiten -> navigieren Sie zu Ihrem neu heruntergeladenen Installationsverzeichnis.

Verwandte Themen