2013-05-22 4 views
13

私は次のエラーを取得する:、桟橋start.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(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. 

は桟橋のドキュメント(http://www.eclipse.org/jetty/documentation/current/quickstart-running-jetty.html)によると、私がする必要があるすべては、zipファイルをダウンロードされ、エキスstart.jarを実行します。 Googleは、同様の問題を抱えている人を私に提供していないようです。

おかげで、 サム

+1

あなたはどちらのJDKを使用していますか? – CloudyMarble

+0

バージョン1.6.0_35 –

+0

Jettyバージョン? – CloudyMarble

答えて

10

には、以下のdiscussion上、具体的に最も人気のある答えに見てみましょう。

まもなく、クラスのバージョンの非互換性の問題があります。以前のバージョンのJVMで実行しようとしている間、あなたの桟橋はJava 7のコンパイラでコンパイルされています。解決策は次のとおりです。Java 7へ進む:JDKをアップグレードし、Java 7を使用するようにeclipseを構成し、新しい機能を使い始める。

+1

ああ、ありがとう。残念ながら、私はJDKをアップグレードする権限がありませんので、代わりにJettyを以前のバージョンに戻します。 –

+3

正しい旧バージョンを見つけるには? unjar start.jarを実行し、META-INF/MANIFEST.MFでBuild-Jdk を調べてください。でも、jettyバージョン7.6.14でも1.7.0_25でコンパイルされました。 – ericslaw

2

java.lang.UnsupportedClassVersionErrorは、コンパイル時にJDKが高くなり、実行時にJREが低くなるために発生します。

あなたのJREをJDKのコンパイル時バージョンのバージョンにアップグレードしました。

7

これは、上位JDKを使用してコンパイルされたコードがある場合に発生する可能性があります。コードをコンパイルするために使用されるJDKを確認してください。

さらに、ドキュメントの記載に従ってJetty 9にはJVM 1.7が必要です。

さらにリンク:

3

桟橋の最新リリースは、JVMのバージョン1.7を必要とします。 JVMを更新するか、古いバージョンのJettyを使用してください(推奨しません)。あなたはここに桟橋-バージョンを見ることができます

http://www.eclipse.org/jetty/documentation/9.0.2.v20130417/what-jetty-version.html#d0e75

+0

これは、古いバージョンのjettyを使用した場合の半分です。これは、既存のJREを使用してソースからビルドされたJetty8.xが動作する可能性があることを意味します。 – ericslaw

0

Javaコンパイラは、高度なバージョンであり、仮想マシンではありません。 JVMをアップグレードするか、コンパイラ(JDK)をダウングレードするかのいずれかで、それを統一します。私は2番目のオプションをお勧めします。 Gook luck !!!!

0

たとえば、Jetty 8.1サーバーを設定していて、Jettyのインストールディレクトリが9.1などの場合は、これも起こります。

適切なJettyインストールをダウンロードしてください。Eclipseで、「Windows」 - >「環境設定」 - >「サーバー」 - >「Jetty」 - >「Edit」 - >新しくダウンロードしたインストールディレクトリを参照してください。