2013-07-23 37 views
9

Trước hết đây là một câu hỏi rất n00b. Nhưng là một nhà phát triển cơ sở, tôi không bao giờ cần nhập và làm việc với các Khung công tác Java khác. Thư viện chuẩn luôn đủ tốt để tôi viết các lớp tôi cần viết.Làm việc và nhập khẩu các thư viện/khung công tác bên ngoài trong Java

Nhưng giờ đây, việc tiếp xúc với nhiều khái niệm "nâng cao" hơn, tôi cần bắt đầu làm việc với các khung bên ngoài, ví dụ: JSON cho Java, HttpClient của Apache cho java và vân vân. Và tôi đang tìm kiếm một sự hiểu biết cơ bản về cách thức hoạt động và cách thức nhập các thư viện này để bạn có thể bắt đầu làm việc với các lớp ...

Vì vậy, sự hiểu biết ban đầu của tôi là mỗi công việc này sẽ cung cấp cho bạn tệp .jar chứa tất cả các lớp cho khung công tác. Sau đó, bạn nhập vào dự án của mình và lo lắng và bạn sẽ có thể sử dụng các lớp/thư viện trong dự án của mình bằng cách chỉ cần nhập nó, ví dụ: 'nhập org.json. *;'

Sự hiểu biết có chính xác không?

Trả lời

4

đúng.

Bạn chỉ cần thêm thư viện vào đường dẫn lớp của mình và hiện có thể sử dụng các lớp từ các thư viện này. Cách bạn thêm lib vào đường dẫn lớp phụ thuộc vào môi trường phát triển thực tế của bạn. Ví dụ: nếu bạn sử dụng Apache Maven, bạn chỉ cần xác định phụ thuộc (libs) trong các dự án của mình pom.xml và Maven tự động tải chúng xuống cho bạn.

hth,
- martin

+0

Cảm ơn đã chỉ cho tôi tại Maven, trông thật sự hữu ích. Tôi đã từng nghe những điều tốt đẹp về nó, có lẽ đã đến lúc bắt đầu sử dụng nó. – Tiwaz89

3

EDIT: Các chỉ sau đây áp dụng nếu bạn không sử dụng tự động xây dựng các công cụ như Maven hoặc Ivy

Có điều này là đúng. Để sử dụng tệp .jar của bên thứ ba, hãy tải xuống và đặt nó ở vị trí thuận tiện (toàn bộ hệ thống hoặc dự án cụ thể tùy theo nhu cầu của bạn) và sau đó đưa nó vào đường dẫn lớp của bạn.

Khi thực hiện từ dòng lệnh làm:

java -cp /path/to/library:. path.to.main 

Các :. là cần thiết để JVM sẽ tìm phương pháp chính của bạn.

Trong IDE, bạn sẽ có thể đưa thư viện vào đường dẫn lớp thông qua menu tùy chọn.

Sau đó, bạn chỉ có thể sử dụng thư viện của bên thứ ba như bất kỳ khác:

import name.of.library.class; 
//Do something 
+0

Cảm ơn! Mặc dù vậy, trước hết, khi bạn thêm các lọ này vào CLASSPATH của bạn thì chắc chắn khi bạn biên dịch dự án của bạn và phân phối nó, nó sẽ không chạy trên các hệ thống khác vì chúng cũng nên có một thư viện nào đó trong CLASSPATH của chúng? Và thứ hai, các khuôn khổ của bên thứ ba luôn cung cấp thư viện của họ dưới dạng lọ hoặc đôi khi họ cũng cung cấp tệp .java thẳng? – Tiwaz89

+1

quảng cáo 1) có, những người khác sẽ cần phải bao gồm các thư viện trong CLASSPATH của họ, quá. Maven cung cấp các plugin lắp ráp để đối phó với vấn đề này. Xem http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven để biết thêm chi tiết. quảng cáo 2) JAR chỉ là một kho lưu trữ ZIP. Thông thường nó chứa các lớp được biên dịch (các tệp .class) nhưng nó cũng có thể chứa các nguồn (tệp .java).Các dự án OpenSource cung cấp nguồn và các JAR nhị phân cho các dự án của họ hầu hết thời gian. Bạn có thể tìm kiếm Kho lưu trữ trung tâm của Maven http://search.maven.org/ ví dụ. –

+0

@ MartinHöller - Cảm ơn một lần nữa, tất cả những điều này đang có ý nghĩa hơn bây giờ. Về cơ bản những gì tôi yêu cầu là (2) Những loại tập tin nên được trong CLASSPATH của bạn? Các tệp .java, tệp .class hoặc tệp .jar (ngay cả khi đây chỉ là lưu trữ zip, bên trong tệp lưu trữ đó là gì? .java hoặc .class files?) – Tiwaz89

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