2012-01-19 43 views

Trả lời

4

Tên Java có thể được áp dụng cho nhiều thành phần khác nhau hoạt động cùng nhau. Nó có thể có nghĩa là "Máy ảo Java" đối với một số, "Đặc tả Ngôn ngữ Java" cho người khác, "các trình biên dịch Java" cho nhiều, và "các thư viện ngôn ngữ Java" đến một vài.

Nếu bạn muốn mã nguồn cho máy ảo Java (JVM) cho Java5, it is available; nhưng, không theo giấy phép nguồn mở. Bản sao Java "nguồn mở" đầu tiên được phát hành với "Java 6". Nếu bạn muốn mã nguồn Java5, bạn cần đăng ký "Thỏa thuận Cấp phép Nhà nghiên cứu Java", điều này cung cấp cho bạn quyền truy cập vào mã nguồn cho JVM (ít nhất là Java5). Việc có mã nguồn của JVM hoàn toàn không cần thiết trong việc viết mã cho môi trường Java5.

Nếu bạn muốn mã nguồn cho Đặc tả ngôn ngữ Java cho Java5, it is a text document (typically published as a book or on-line set of web pages). Mặc dù nó có thể cho phép bạn hiểu liệu trình biên dịch có nên khiếu nại với một lỗi trong một số trường hợp hay không, một lần nữa không cần thiết phải viết một chương trình cho môi trường Java5.

Nếu bạn muốn trình biên dịch Java5, it can be downloaded in the oracle archives of old releases of the Java development toolkit. Nếu bạn muốn viết một chương trình cho Java5, việc tải xuống và sử dụng cung cấp này thường là cách thực hành tốt nhất để phát triển các chương trình Java5. Hoặc bạn có thể cấu hình một trình biên dịch tương thích tương thích (Java6/Java7) để phát ra mã Java5.

Nếu bạn muốn các thư viện ngôn ngữ Java5, chúng được bao gồm trong bộ công cụ phát triển Java5. Các dịch vụ bộ phát triển Java6 và Java7 cung cấp các thư viện ngôn ngữ đi đến những nỗ lực rất lớn để tương thích với mã nguồn Java5; tuy nhiên, các thư viện mới hơn cũng bao gồm các tính năng và hoạt động mới hơn mà một máy ảo Java5 cổ phiếu sẽ không thể tham chiếu. Một lần nữa, có những kỹ thuật để sử dụng một cách an toàn một phiên bản Java tương thích ngược (6/7); tuy nhiên, người ta không cần phải áp dụng thêm bất kỳ sự chăm sóc nào nếu chúng phát triển dựa trên bộ phát triển Java5. "Mã nguồn" cho các thư viện ngôn ngữ đã được bao gồm trong mã nguồn cho JVM theo Thỏa thuận Giấy phép Nghiên cứu Java, đến mức mà SUN được phép bao gồm mã nguồn như vậy.

Trong khi SUN đã cấp phép một số công nghệ từ các công ty khác theo cách mà chúng có thể được phân phối tự do với Java5, SUN không nhất thiết phải sở hữu tất cả các công nghệ trong Java5 hoàn toàn.Như vậy, ngay cả theo Thỏa thuận Giấy phép Nhà nghiên cứu Java, một số mã nguồn không có sẵn (mặc dù các thư viện được biên dịch). Các dự án mã nguồn mở (như OpenJDK) đã nhanh chóng triển khai các lỗ hổng "thiếu" này với các thư viện mã nguồn mở để có được một chồng Java nguồn mở đầy đủ chức năng; nhưng, đó là Java6 + (không phải Java5).

+0

Cảm ơn bạn đã trả lời phức tạp, tôi chỉ là một người nghiệp dư muốn xem nguồn java.lang và các gói cơ bản khác để làm dịu sự tò mò của tôi .. tôi có nên kiểm tra lưu trữ java không? :) !! – hakish

+0

Nếu bạn chỉ muốn xem nguồn cho nội dung "java.lang", hãy tìm đến Java6. Ít nhất là có sẵn mà không có giấy phép hạn chế. Ngoài ra, nhận ra rằng hầu hết nó được viết bằng Java, với một số chính "bản địa" backings. Bạn cần phải biết JNI của bạn để đọc nó, và việc thực hiện bản địa thực sự phụ thuộc vào việc thực hiện JVM. Các khu vực của mã đối phó với những điều phải được thực hiện, nhưng không được tiếp xúc trong ngôn ngữ (như bộ nhớ malloc'ing và đăng ký các lớp học theo cách thức cho phép thu gom rác tự động). Công cụ thú vị; hiếm khi hữu ích cho dự án điển hình. –

0

chuyến thăm oracle archive

+0

tôi không thấy mã nguồn trong liên kết này chỉ các tệp nhị phân ... – hakish

+3

Tất cả nguồn bạn có thể nhận được nằm trong JDK. –

+0

Đừng quên Java 5.0 là quá cũ, nó đã được End Of Life'd trước khi Oracle mua Sun. Nó cũng được đặt trước OpenJDK để nguồn duy nhất có sẵn trong JDK. –

1

Java 1.5 không phải là mã nguồn mở. Trích dẫn Wikipedia:

Ngày 13 tháng 11 năm 2006, Sun phát hành phần mềm Java miễn phí và mã nguồn mở, (FOSS), theo các điều khoản của Giấy phép Công cộng GNU (GPL). Vào ngày 8 tháng 5 năm 2007, Sun đã hoàn thành quy trình, làm cho tất cả mã lõi của Java có sẵn theo các điều khoản phân phối phần mềm/mã nguồn mở miễn phí, ngoài một phần nhỏ mã mà Sun không giữ bản quyền.

Theo như tôi có thể nhớ có thể lấy mã nguồn cho mục đích nghiên cứu (trường đại học của chúng tôi có quyền truy cập vào mã nguồn với thỏa thuận đặc biệt với Sun) nhưng tôi không nghĩ rằng nó có thể để lấy nó từ Oracle.

Trước khi tìm nguồn mở, có một số triển khai miễn phí của JVM và của các lớp lõi. Hãy xem http://en.wikipedia.org/wiki/Free_Java_implementations để biết ví dụ.

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