2013-04-18 10 views
5

Jetty(v9.0)Webサーバーで非常に単純なJava Webアプリケーションを開始しようとしています。1.6 JVMで実行中のJettyはJava 1.6でコンパイルされたwebappを実行できません

Mavenを使用して、私は

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

META-INF /の

内容を構築し、戦争を作成し、マニフェストファイルで見ることができるように、私はOS X上でコンパイル用のJava 1.6u43を使用しました

私はUbuntuでJettyを実行していますが、わかるように、私はJava 1.6.0_45より少し上のバージョンです。 Javaは下位互換性がある場合は、私のJavaアプリケーションは、桟橋上で実行する必要がありますが、それはサポートされていないマイナーバージョンで失敗している

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. 
インターネット上

他の人々は、彼らが* 1.6上でJava 1.7コンパイルされたアプリケーションを実行しようとしているこの問題に直面している JVM。 ENVが1.6 *で、ENVの配置がJVMのバージョンが少し上がっている私の場合、なぜこのようなことが起こっているのか理解できません。

Java 1.6.0_45を使用しているTomcatにアプリケーションをデプロイすると、問題は発生せず正常に動作します。私はここで何か非常に些細なものを逃していますか?

答えて

10

Jetty 9は、list of Jetty versionsに従ってJava 7で実行する必要があります。

Java 6を使用してJetty 9をコンパイルしようとすることはできますが、それはほとんど機能しない可能性があります(そうでなければ、Jettyの開発者も同様です)。

+0

が正しい場合、Jetty 9はすぐにリリースされるサーブレット3.1仕様のために配置されており、これにはJava 1.7が必要です –

関連する問題