2012-01-19 37 views
5

Tôi đã viết không đơn giản như vậy ứng dụng, và quyết định làm cho applet. Tôi có kho lưu trữ .jar và lớp chính có chat.java (nó chứa init() và mở rộng JApplet). Tôi có mã này trong HTML File:Java - java.lang.UnsupportedClassVersionError trong applet

<applet code="chat.class" archive="chat.jar" width="150" height="150"> 
Error! 
</applet> 

Và nó mang lại cho lỗi

java.lang.UnsupportedClassVersionError: chat : 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.defineClass(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source) 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Exception: java.lang.UnsupportedClassVersionError: chat : Unsupported major.minor version 51.0 

trong Java console. Tôi không biết phải làm gì, applet của tôi sẽ mở một Frame mới (popup), nơi bạn có thể chat và vân vân. Thanx cho bất kỳ câu trả lời nào!

+0

Bạn có thể xác minh rằng phiên bản java của bạn giống nhau ở nơi bạn đã biên dịch jar không? – mezzie

+0

* "applet của tôi sẽ mở một Frame mới (popup), nơi bạn có thể trò chuyện và vân vân" * Loại bỏ hoàn toàn applet và khởi chạy khung từ liên kết bằng cách sử dụng [Java Web Start] (http://stackoverflow.com/ tags/applet/info). Việc triển khai một applet và trải nghiệm tốt hơn cho người dùng sẽ dễ dàng hơn. –

Trả lời

11

Bạn có phiên bản không tương thích của tệp lớp và plugin java. Ví dụ bạn biên dịch mã của bạn trong java7 và cố gắng chạy trên java5 hoặc java6.

Phiên bản không được hỗ trợ MAJOR.MINOR 51,0 có nghĩa là bạn đã biên soạn mã của bạn trong JDK7, và plugin trình duyệt của bạn tôi JRE 6 trở lên và không hiểu nó.

Trong tình huống như vậy, bạn cần thực hiện một trong số:

  • cập nhật plugin java của bạn (hoặc chuyển sang phiên bản thích hợp nếu bạn có nhiều), hoặc
  • biên dịch applet của bạn cho java cũ sử dụng '- mục tiêu 'tùy chọn.

Để kiểm tra phiên bản java của bạn, hãy truy cập plugin test trang.

+0

Tôi có cả hai phiên bản mới nhất. Tôi không biết phải làm gì ... Im sử dụng nhật thực, làm thế nào để thay đổi phiên bản đích? –

+2

@kittyPL: bạn có thể thay đổi trong thuộc tính dự án của mình -> "Trình biên dịch Java" -> "Mức tuân thủ trình biên dịch". –

+0

làm việc tuyệt vời với 1,5 !!! Thanx! tôi sẽ bỏ phiếu nếu tôi có thể: D –

1

Ngoại lệ đó có nghĩa là bạn đã biên dịch các lớp của mình theo một JDK cụ thể, nhưng sau đó thử chạy chúng theo phiên bản cũ hơn của JDK. Vì vậy, bạn không thể chạy các lớp được biên dịch với JDK 6.0 theo JDK 5.0. Kiểm tra phiên bản JRE của trình duyệt của bạn. Ngoài ra, bạn có thể chỉ định một JDK đích khi biên dịch các lớp của bạn.

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