2013-04-18 3 views
5

sto cercando di iniziare molto semplice webapp Java sul molo (v9.0) webserver.Jetty in esecuzione su 1,6 JVM non è in grado di eseguire webapp compilato su Java 1.6

Utilizzando Maven ho costruito e creato la guerra e come può essere vedere nel file manifesto, ho usato Java 1.6u43 per la compilazione su OS X

Contenuti di META-INF/MANIFEST.MF

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: irraju 
Build-Jdk: 1.6.0_43 

Sto eseguendo Jetty su Ubuntu e come si può vedere, ho una versione leggermente più alta di java 1.6.0_45. Se java è compatibile, la mia applicazione Java dovrebbe funzionare su pontile ma si sta venendo a mancare con la versione secondaria non supportata

root# java -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing) 

root# java -DDEBUG -jar 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(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: org.eclipse.jetty.start.Main. Program will exit. 

Altre persone su internet si trovano ad affrontare questo problema quando si cerca di eseguire applicazioni Java 1.7 compilate su 1,6 * JVM. Non riesco a capire perché questo sta accadendo nel mio caso in cui entrambi gli ENV sono 1.6 * e la distribuzione ENV ha una versione leggermente più alta di JVM.

Se distribuisco l'applicazione su Tomcat che utilizza java 1.6.0_45, non si lamenta e funziona correttamente. Mi sto perdendo qualcosa di molto banale qui?

risposta

10

Jetty 9 richiede di essere eseguito con Java 7, secondo questa list of Jetty versions.

Puoi provare a compilare Jetty 9 usando Java 6, ma molto probabilmente non funzionerà (altrimenti, anche gli sviluppatori di Jetty avrebbero potuto farlo da soli).

+0

corretto, Jetty 9 è posizionato per la prossima specifica servlet 3.1 che richiederà java 1.7 –