Khi sử dụng trình biên dịch Java (javac
), chúng tôi có thể chỉ định hai loại khả năng tương thích. Một người đang sử dụng -source
và người kia đang sử dụng -target
. sự khác biệt giữa hai cái đó là gì?sự khác nhau giữa khả năng tương thích nguồn và -target là gì?
Ví dụ: -source 1.5
và -target 1.6
?
Ngoài ra, có trường hợp nào chúng tôi sử dụng một mức độ tương thích nguồn và mục tiêu khác không?
Lưu ý rằng tôi đã thấy rằng 'javac' không hỗ trợ tất cả các kết hợp. Ngoài ra tôi thực sự có một trường hợp sử dụng. Trong Java 6 JAX-WS được xây dựng trong, vì vậy tôi muốn có một giải pháp làm việc trên đồng bằng Java 6 mà không cần thêm các thư viện. Giải pháp đó sau đó cần cho một vài khách hàng có thể thực thi trên Java 5 JVM (và JAX-WS được đưa vào bên) và cú pháp '@ Override' đã thay đổi để nó không được biên dịch ngay lập tức bằng Java 5 javac. (Đây là tiền maven, nó có thể dễ dàng hơn để làm hôm nay) –
Xem thêm '-bootclasspath' như mô tả thêm trong [câu trả lời này] (http://stackoverflow.com/a/10663478/418556). –
@skaffman - * "Khá lý do tại sao bạn sẽ làm điều này là một vấn đề khác ..." * - Java cố gắng diễn giải ý kiến. Nếu ngôn ngữ không được thiết lập đúng, thì biên dịch có thể thất bại vì một nhân vật bất hợp pháp trong các bình luận !!! Đôi khi nó dễ dàng hơn để cho trình biên dịch ngừng giải thích các nhận xét sau đó, nói, sửa thông báo bản quyền trong hàng trăm tệp. – jww