2010-10-27 2 views
33

Tính đến tháng 10 năm 2010, là GNU's Java compiler đã chết? Có bất kỳ lựa chọn thay thế hoạt động nào (đặc biệt là để biên dịch Java sang mã gốc) không?Trình biên dịch Java của GNU (GCJ) có bị chết không?

Các giải pháp LLVM sẽ được ưu tiên hơn.

+1

@ org.life.java, tôi không biết OpenJDK có thể tạo các tệp nhị phân gốc, có ví dụ không? – mikerobi

+0

@mikerobi sai lầm của tôi có thể là: p –

+0

Um, bạn thấy nó đã chết ở đâu? Nó không nhìn chết từ trang được liên kết. –

Trả lời

23

Bạn có thể sử dụng trình biên dịch trước thời gian IKVMMono để tạo mã gốc.

EDIT

Có một ví dụ ở dưới cùng của this page.

+4

IKVM không tạo mã gốc. Nó chỉ tạo ra một loại mã byte khác cho vũ trụ .NET. – Horcrux7

+2

@ Horcrux7, đọc câu trả lời của tôi cẩn thận hơn và thực sự truy cập vào liên kết. Mono có thể tạo mã máy riêng từ .NET bytecode. Vì vậy, kết hợp với IKVM, bạn có thể tạo mã gốc. – mikerobi

+3

Rõ ràng bất cứ ai bỏ phiếu bầu tôi đều không đọc câu trả lời của OP hoặc câu trả lời của tôi, hoặc không tin tôi. Trên thực tế, hãy xem liên kết tôi đã cung cấp. Anh ấy đã yêu cầu các lựa chọn thay thế cho việc tạo mã nguồn gốc, và đó là những gì tôi đã cho anh ấy. – mikerobi

1

Tôi nghĩ rằng không phải là nó đã chết. Nó chỉ có vài điều quan trọng. Điều này dẫn đến sự phát triển chậm. Có 3 sự thật bởi vì nó chỉ có một vài điều quan trọng hôm nay:

  • Nó dựa trên GNU Classpath. Vì Java là mã nguồn mở (OpenJDK) nên không có nhu cầu lớn đối với Java nguồn mở khác. Điều này đã làm chậm tốc độ phát triển.
  • Java nhanh hơn trong những năm qua. Đầu ra GCJ không nhanh hơn. Trong nhiều trường hợp, nó chậm hơn.
  • GNU Classpath có nhiều tính không tương thích.
+4

1 năm không có cập nhật đã trở thành 6. Đã chết. –

+2

Chính thức chết kể từ tháng 10 năm ngoái: http://tromey.com/blog/?p=911 – Matthieu

19

Một câu hỏi thích hợp hơn sẽ là liệu nó có thực sự sống hay không. Xem xét những vấn đề này, từ trang web của riêng mình:

  • 1.2 hỗ trợ là 'vẫn chưa hoàn thành'.
  • 1.3 ditto.
  • Dự án được cập nhật lần cuối hơn một năm trước [tính đến tháng 10 năm 2009].
  • Hiện tại 'hỗ trợ hầu hết 1,4 thư viện cộng với khoảng 1,5 bổ sung'.
  • Không hỗ trợ java.nio.
  • Không hỗ trợ javax.naming ('đầy đủ nhưng không có nhà cung cấp').
  • Không hỗ trợ javax.sql.
  • Không hỗ trợ AWT hoặc Swing.
  • Không hỗ trợ bản địa hóa qua java.text.
  • Trạng thái java.security là 'không xác định'.
  • Không kiểm tra quyền trong java.lang.reflect.
  • Nó có biên dịch generics không?
  • Các khối lớn bị thiếu các gói khác, ví dụ: gần 50% của java.util.
  • Không có chú thích.
  • Không có công cụ tập lệnh.
  • Gần như toàn bộ javax.xml.* (đệ quy) bị thiếu.
  • Không org.omg.CORBA.
  • Thực tế không org.w3c.
  • so sánh hiện tại với JDK 1.6 là here. Lưu ý rằng điều này dường như để thêm phần trăm để cung cấp cho một tổng số hoàn toàn vô nghĩa.

Và lưu ý rằng nó không được lập hóa đơn dưới dạng 'trình biên dịch Java'. Nó là một trình biên dịch cho một tập hợp con của Java được gọi là GNU CLASSPATH. Mà lần lượt không được cập nhật kể từ tháng 2 năm 2009.

Nếu nó không chết thì chắc chắn là nằm xuống.

EDIT Đã chết. GCJ không còn là listed as a GNU package nữa. Và sau bốn năm hoạt động bằng không, chúng tôi có quyền giả định giống nhau về GNU CLASSPATH.

+2

GNU Classpath được cập nhật vào tháng 3 năm 2012: http://savannah.gnu.org/forum/forum.php?forum_id=7156 –

+1

@JanusTroelsen Và nó đã không được cập nhật sau đó, mặc dù tôi đang viết này gần ba năm sau khi đăng câu trả lời của tôi, và sáu tháng sau khi bình luận của bạn. Chứng minh quan điểm, * nicht war? * Tôi cũng không thấy bất cứ điều gì trong trang đó sửa chữa ngay cả phần lớn những thiếu sót mà tôi trích dẫn, trực tiếp từ trang web của riêng họ. – EJP

+2

Và phát âm đã chết bởi một trong các tác giả của nó, tính đến tháng 10 năm 2016: http://tromey.com/blog/?p=911 – Matthieu