2010-02-10 20 views
36

Nếu tôi muốn chuyển từ Sun JDK sang OpenJDK, điều gì khiến tôi phải tự chuẩn bị?Tôi phải tự chuẩn bị gì nếu tôi chuyển từ Sun JDK sang OpenJDK?

Điều gì thường xuyên xảy ra và khó khăn như thế nào?

Tất nhiên, mỗi ứng dụng đều có vấn đề riêng, nhưng tôi đang tìm kiếm lớp học các sự cố, điều mà nhiều người đã gặp phải khi chuyển đổi JDK.

+0

Nếu bạn có thể chuẩn bị cho họ thì họ không ngạc nhiên ;-) –

+1

Lưu ý quan trọng hơn: nếu bạn cho chúng tôi biết đơn đăng ký của bạn là gì, bạn có thể sẽ nhận được câu trả lời tập trung hơn. –

+1

Bạn sẽ có thể sửa đổi mã JVM nếu nó xảy ra để hoạt động kém. Nó không đáng ngạc nhiên sao? –

Trả lời

11

Dường như mọi thứ sẽ không ổn với OpenJDK. Nó được coi là tương thích 100% bây giờ. Nhưng tôi nghĩ rằng nó là tốt để biết những gì các bộ phận đã được viết lại và do đó không sử dụng cùng một mã như SunJDK.

Các Wikipedia entry có một cái nhìn tổng quan tốt về điều này:

Tính đến tháng năm 2008, phần duy nhất của thư viện lớp còn lại thuộc quyền sở hữu và nguồn đóng (4% tính đến tháng 5 năm 2007 cho OpenJDK 7, và ít hơn 1% kể từ tháng 5 năm 2008 và OpenJDK 6) là triển khai SNMP.

Từ tháng 5 năm 2007 phát hành đầu tiên, Sun Microsystems, với sự giúp đỡ của cộng đồng, đã phát hành như là phần mềm tự do nguồn mở hoặc thay thế bằng miễn phí và mã nguồn mở thay thế gần như tất cả các mã vướng bận:

  • Tất cả mã công cụ âm thanh, bao gồm bộ tổng hợp phần mềm, đã được phát hành dưới dạng Nguồn mở. Tổng hợp phần mềm nguồn đóng đã được thay thế bởi một tổng hợp mới được phát triển đặc biệt cho OpenJDK gọi Gervill,

  • Tất cả các lớp mật mã sử dụng trong thư viện lớp đã được phát hành dưới dạng mã nguồn mở,

  • Mã rằng quy mô và rasterizes phông chữ đã được thay thế bằng FreeType

  • Hệ thống quản lý màu gốc đã được thay thế bởi LittleCMS. Có một lớp có thể cắm được trong JDK, do đó phiên bản thương mại có thể sử dụng hệ thống quản lý màu cũ và OpenJDK có thể sử dụng LittleCMS.

  • Mã rasterizer chống răng cưa đã được thay thế bằng trình kết xuất Song Ngư có nguồn mở được sử dụng trong dự án phoneME. Mã này có đầy đủ chức năng nhưng vẫn cần một số cải tiến hiệu suất,

  • Plugin JavaScript đã được mở nguồn (chính công cụ JavaScript Rhino đã được mở nguồn từ đầu).

+2

OpenJDK như được bao gồm trong hầu hết các bản phân phối Linux không tương thích 100%. Việc thực hiện Java Sound đến từ IcedTea và nó hoạt động khác với Mặt trời. Ví dụ, nó ném một ngoại lệ nếu bạn cố gắng ghi vào một dòng khép kín, đó là cách gần như tất cả các mã Java Sound hiện có hoạt động (ví dụ, JavaZOOM, jsresources.org). Với những khó khăn phông chữ rendering tôi muốn gọi nó là "chỉ" 98% tương thích. –

2

Vì OpenJDK là dự án Sun, dựa trên nguồn Java gốc, tôi không mong đợi nhiều vấn đề. Khu vực duy nhất mà mọi thứ có thể phá vỡ là mã phải được thay thế (vì nó không thể được phát hành theo GPL) hoặc thay đổi vì các tính năng mới (nhưng những thứ đó sẽ khá giống với trong JDK chính thức).

+1

"Khu vực duy nhất nơi mọi thứ có thể phá vỡ là mã phải được thay thế" - bạn có biết những khu vực đó là gì không? – Paolo

3

Như tôi biết phông chữ sẽ nhìn bị cắt xén, Sun đã phải loại bỏ những gốc từ OpenJDK vì họ không phải 'nguồn mở' và JVM sẽ sử dụng một số mặc định mà không phải là quá đẹp ...

+0

Có, đây là vấn đề lớn nhất của chúng tôi khi chúng tôi di chuyển. –

+0

Sau một số thử nghiệm, đây là vấn đề duy nhất tôi gặp phải với OpenJDK. JasperReports gần như không sử dụng được. –

1

Sử dụng một build OpenJDK được biết là vượt qua TCK để giảm thiểu những bất ngờ.

1

Một số giao diện người dùng xoay của không phù hợp hoàn toàn (kim loại có miếng đệm không rằng đã tắt chỉ aenough để ý). Lưu ý rằng đây là 8 tháng trước.

1

Các ứng dụng OpenJDK (IcedTea) trong linux là MAJOR PAIN. Tôi đang đấu tranh với gỡ lỗi từ xa một đoạn mã khá gỉ trong vài giờ rồi. Official documentation về cách đính kèm vào một applet trong trình duyệt chỉ đơn giản là không làm việc cho tôi. Không có giao diện điều khiển java theo mặc định, BTW. Tôi đang nghiêm túc xem xét việc sao chép cấu hình applet và sử dụng trình xem applet tích hợp JDK thay vì cố gắng gỡ lỗi JVM do trình duyệt lưu trữ.

UPD: Tôi không hoàn toàn chắc chắn rằng OpenJDK không có plugin trình duyệt. Có lẽ điều này đã thay đổi gần đây.

+0

Joseph Darcy viết blog vào năm 2009 rằng plugin trình duyệt sẽ có nguồn mở (https://blogs.oracle.com/darcy/entry/openjdk_and_the_new_plugin), nhưng chưa bao giờ, và vào tháng 7 năm 2010, anh ấy nói với tôi rằng không có lộ trình cho đến khi nào. – damjan

-1

OpenJDK an toàn hơn Oracle nhị phân vì IcedTea.

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