2013-04-18 33 views
5

Tôi đang cố gắng khởi động ứng dụng web Java rất đơn giản trên máy chủ web Jetty (v9.0).Cầu cảng chạy trên 1.6 JVM không thể chạy webapp được biên dịch trên Java 1.6

Sử dụng maven tôi đã xây dựng và tạo ra chiến tranh và như có thể được nhìn thấy trong file manifest, tôi sử dụng Java 1.6u43 cho biên soạn trên OS X

Nội dung 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 

Tôi đang chạy Jetty trên Ubuntu và có thể thấy, tôi có phiên bản cao hơn một chút của java 1.6.0_45. Nếu java tương thích ngược, ứng dụng java của tôi nên chạy trên cầu cảng nhưng nó là không có phiên bản nhỏ được hỗ trợ

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. 

Những người khác trên internet đang đối mặt với vấn đề này khi họ đang cố gắng để chạy các ứng dụng Java 1.7 biên soạn trên 1,6 * JVM. Tôi không thể tìm ra lý do tại sao điều này xảy ra trong trường hợp của tôi khi cả ENV là 1,6 * và ENV triển khai có phiên bản JVM cao hơn một chút.

Nếu tôi triển khai ứng dụng trên Tomcat đang sử dụng java 1.6.0_45, nó không phàn nàn và hoạt động tốt. Tôi có thiếu thứ gì đó tầm thường ở đây không?

Trả lời

10

Cầu tàu 9 cần được chạy với Java 7, theo số list of Jetty versions này.

Bạn có thể tự mình biên dịch Jetty 9 bằng cách sử dụng Java 6, nhưng điều đó rất có thể sẽ không hoạt động (nếu không, các nhà phát triển Jetty cũng có thể tự làm điều đó).

+0

chính xác, Jetty 9 được định vị để sớm được phát hành servlet 3.1 đặc điểm kỹ thuật sẽ yêu cầu java 1.7 –

Các vấn đề liên quan