.NET Assembly có giống với java .jar không?
Chúng đóng cùng vai trò, vâng.
.dll chứa mã IL đã biên dịch và .jar chứa tệp .class/byte mã tuân thủ?
Có. Mặc dù JAR chỉ là các tệp zip (bạn có thể mở chúng trong công cụ Zip yêu thích của mình), vì vậy chúng thực sự có thể chứa bất kỳ thứ gì.
Họ nói tài nguyên, loại tài nguyên mà chúng ta đang nói đến ở đây? Hình ảnh, tệp .txt, v.v. hoặc tất cả chúng có thể?
Bất kỳ loại tệp nào đều được phép trong JAR. Mã Java của bạn có thể truy cập nội dung của các tệp trong jar thông qua, ví dụ: getResourceAsStream hoặc getResource. Rõ ràng các tệp .class trong một JAR được xử lý đặc biệt (như bytecode).
Tôi đã kiểm tra AWS (API dịch vụ web của Amazon cho java) và tôi thấy ba tệp .jar và chúng là: aws-java-sdk-1.1.1.jar, aws-java-sdk-1.1.1 -javadoc.jar, aws-java-sdk-1.1.1-sources.jar
Bao bì trên khá phổ biến. Đôi khi mọi người sử dụng .jar dưới dạng một phần mở rộng tệp thay thế cho .zip. Tôi thấy thực tế này khó hiểu, nhưng nó không phải là không phổ biến, và Amazon đã thực hiện nó trong trường hợp này. Tôi nghĩ rằng thực hành này trở nên phổ biến hơn với sự ra mắt của Maven, lưu trữ mã nguồn tham chiếu trong các tệp có tên .jar.
aws-java-sdk-1.1.1.jar - Đây là tệp duy nhất cần thiết để biên soạn và thực thi. Nó chứa các lớp (các tệp .class) và các tài nguyên cần thiết để thư viện hoạt động.
aws-java-sdk-1.1.1-sources.jar - Đây chỉ là tệp zip chứa mã nguồn (tệp .java) cho thư viện. Nó không cần thiết cho việc biên dịch hoặc thực thi. Nó được cung cấp để giúp bạn gỡ rối các vấn đề bạn có thể gặp phải trong khi sử dụng thư viện. Bạn có thể giải nén tập tin này và đọc mã nguồn từ ổ cứng của bạn. Tuy nhiên, IDE của bạn có thể sử dụng trực tiếp tệp này bằng cách tạo một "tệp đính kèm nguồn" cho thư viện JAR chính. Với thư viện này -> liên kết nguồn được thiết lập trong IDE của bạn, IDE của bạn sẽ có thể hiển thị cho bạn mã nguồn của thư viện khi bạn sử dụng tính năng "Đi tới Định nghĩa" của IDE trên một lớp thư viện.
aws-java-sdk-1.1.1-javadoc.jar - Đây chỉ là tệp zip chứa JavaDoc cho thư viện. Một lần nữa, nó không cần thiết cho việc biên dịch hoặc thực thi. JavaDoc chỉ là HTML, vì vậy bạn có thể giải nén tệp này và đọc mã JavaDoc HTML trực tiếp từ ổ cứng của bạn. Tuy nhiên, hầu hết các IDE có thể tạo một "tệp đính kèm javadoc" vào thư viện chính, cho phép bạn kéo JavaDoc theo ngữ cảnh cho thư viện từ bên trong IDE. Trên thực tế, hầu hết các IDE có thể tạo ra JavaDoc khi đang bay từ -sources.jar, vì vậy tôi hiếm khi sử dụng các javadoc lọ nữa.
Khi tôi muốn nhập thư viện java, tôi có luôn cần nhập tệp .jar không?
Nó thường được gọi là "thêm JAR vào đường dẫn lớp", nhưng có. Bạn khá nhiều luôn cần giúp Java tìm tất cả các JAR bạn đang sử dụng bằng cách xây dựng một classpath bất cứ khi nào bạn xây dựng hoặc thực thi. Nói chung, việc sử dụng các JAR và các classpath là một quy trình thủ công và rõ ràng hơn nhiều so với việc sử dụng các tệp DLL trong .NET. Ví dụ: Java không có tương đương trực tiếp với bộ nhớ cache toàn cầu của .NET; cũng vani Java sẽ không tự động tải .jars từ thư mục làm việc.
Có một vài kỹ thuật khác để tạo đường dẫn cảm giác "tự động" hơn, nhưng chúng là loại tiên tiến: đường dẫn Manifest.MF có thể, ví dụ - nhưng phương pháp này ít khi được sử dụng vì nó dễ vỡ. Kể từ Java 6, Java đã hỗ trợ hạn chế để sử dụng wildcards in the classpath.
Khi tôi muốn xuất thư viện java của riêng tôi, nên tôi cần phải xuất khẩu trong file .jar
Đây là tiêu chuẩn, vâng.
Bản thân tôi đã tự hỏi điều này, ước gì tôi có thể cung cấp nhiều ưu điểm hơn !!! – John
Tôi là người ngược lại. Tôi đang học NET. Những ngày này sau khi Java. – KJW