- vừa được xem lúc

Issue "class file has wrong version 55.0, should be 52.0"

0 0 39

Người đăng: logbasex

Theo Viblo Asia

1. Issue

Đây là mội lỗi xảy ra khá thường xuyên do sự không tương thích giữa version Java bạn đang chạy và version Java mà thư viện bạn đang sử dụng. Con số 55.0 ở trên chính là major version của Java, chúng ta có danh sách major version cho đến Java 17 như sau:

  • Java 1.2 uses major version 46
  • Java 1.3 uses major version 47
  • Java 1.4 uses major version 48
  • Java 5 uses major version 49
  • Java 6 uses major version 50
  • Java 7 uses major version 51
  • Java 8 uses major version 52
  • Java 9 uses major version 53
  • Java 10 uses major version 54
  • Java 11 uses major version 55
  • Java 12 uses major version 56
  • Java 13 uses major version 57
  • Java 14 uses major version 58
  • Java 15 uses major version 59
  • Java 16 uses major version 60
  • Java 17 uses major version 61

Bug này có nghĩa rằng một vài class của thư viện cần được complied sử dụng Java 11 nhưng bạn đang cố gắng compile với Java 8.

2. Solution

Chỉ cần downgrade thư viện xuống version Java tương thích - trong trường hợp này là Java 8. Tuy nhiên vấn đề xảy ra là trong môt dự án rất lớn, thời gian compile sẽ tương đối lâu, do đó chúng ta cần cách tiếp cận khác để kiểm tra được version Java mà thư viện chúng ta download về từ maven là tương thích với version Java mà project đang sử dụng bằng cách xem tham số Build-Jdk trong tập tin MANIFEST.MF như sau:

image.png

3. Final thought

Đôi khi sẽ xảy ra vấn đề là dependency của một thư viện không tương thích với thư viện khác mà bạn đang sử dụng ví dụ như bạn thư viện đang dùng opencsv:4.1.2 nhưng trong khi đó project bạn đang dùng version opencsv:5.0. Bạn cũng có thể check file pom.xml trong folder META-INF để kiểm tra và giải quyết vấn đề trên.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 277

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 194

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 71

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 139