Cách chính xác để thêm các lọ bên ngoài (lib / *. Jar) vào dự án IntelliJ IDEA


734

Khi tạo một dự án Java mới trong IntelliJ IDEA, các thư mục và tệp sau đây được tạo:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

Tôi muốn cấu hình IntelliJ IDEA để bao gồm các JAR phụ thuộc của tôi vào ./lib/*.jardự án. Cách chính xác để đạt được điều này trong IntelliJ IDEA là gì?


Tôi đang đối mặt với vấn đề trong khi chạy chương trình trong thiết bị đầu cuối trong IntelliJ. Tôi đã sử dụng câu lệnh nhập để sử dụng các lớp mà tôi yêu cầu trong chương trình. Trong khi tôi chạy nó trong IDE, nó chạy tốt. Nhưng khi tôi cố gắng biên dịch từ dòng lệnh% javac MyProgram.java, nó báo lỗi: không thể tìm thấy biểu tượng
don_Gunner94

Câu trả lời:


1306

Các bước để thêm các lọ bên ngoài trong IntelliJ IDEA:

  1. Nhấp Filetừ thanh công cụ
  2. Cấu trúc dự án ( CTRL+ SHIFT+ ALT+ Strên Windows / Linux, + ;trên Mac OS X)
  3. Chọn mô-đun ở bảng điều khiển bên trái
  4. Tab phụ thuộc
  5. '+' → JAR hoặc thư mục

99
Ngoài ra, hãy xem xét thêm thư mục lib và sử dụng "Đính kèm Jar Directories", sẽ thêm tất cả các lọ trong thư mục lib. Đối với một dự án lớn, điều này giúp bạn không phải chọn từng lọ riêng lẻ.
joeslice

16
Để tham khảo trong tương lai: nút "Thêm" đó nằm ngoài rìa cửa sổ và tôi đã dành một lượng thời gian không đáng có để tìm kiếm nó trước khi tìm thấy bài đăng này và suy nghĩ để thay đổi kích thước cửa sổ. (Đây là trên OSX 10.6.5 ...)
Daniel Dickison

7
@joeslice chỉ hoạt động nếu các JAR nằm trong thư mục gốc, phải không? Nó dường như không hoạt động đối với các JAR bên trong các thư mục con bên trong 'lib'.
opyate

6
Trong IJIdea 13, có "+"> thay vì "thêm".
Val

4
Tôi đang sử dụng IDEA 14.0.2. Thay vì Thêm có biểu tượng +. Sau khi nhấp vào + có 3 tùy chọn: 1. JAR hoặc thư mục 2. Thư viện ... 3. Phụ thuộc mô-đun ...
Ripon Al Wasim

239

IntelliJ IDEA 15 & 2016

  1. Tệp > Cấu trúc dự án ...

    Tệp> Cấu trúc dự án

    hoặc nhấn Ctrl+ Alt+ Shift+S

  2. Cài đặt dự án > Mô-đun > Phụ thuộc > dấu " + "> JAR hoặc thư mục ...

    Mô-đun> Phụ thuộc> JAR hoặc thư mục

  3. Chọn tệp jar và nhấp vào OK, sau đó nhấp vào nút OK khác để xác nhận

    nhập mô tả hình ảnh ở đây

    nhập mô tả hình ảnh ở đây

  4. Bạn có thể xem tệp jar trong thư mục "Thư viện bên ngoài"

    nhập mô tả hình ảnh ở đây


Tôi thực sự tạo một Mô-đun mới trong ngăn "Mô-đun" (được đặt tên là "JarsForLogging"), sau đó thêm tất cả các lọ tôi cần (nằm trong một thư mục cách xa cây dự án) vào Mô-đun mới này và đánh dấu các lọ là " Xuất khẩu". Cuối cùng, tôi thêm Mô-đun mới được tạo vào các phụ thuộc của Mô-đun gốc. Một chút phân cấp theo cách đó.
David Tonhofer

Ngoài ra: đảm bảo rằng các quyền hệ thống tệp được đặt chính xác cho các .jartệp. Sử dụng chmodđể sửa đổi chúng trên Linux hoặc MacOS.
JJD

4
vẫn hoạt động vào năm 2018 (năm và phiên bản IntelliJ). Cảm ơn bạn. Bằng cách này, tôi có thể tải và sử dụng các thư viện Lisp chung của Armed Bear từ bên trong IntelliJ, thật tuyệt vời!
Jason Robinson

Vâng. Hoạt động tốt với IntelliJ của tôi là tốt. Cảm ơn!
Bms bharadwaj

1
@ don_Gunner94, thông qua dòng lệnh, bạn cũng nên cung cấp jar như thế này:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

118

Chỉ cần sao chép-dán .jar trong thư mục "libs" (hoặc toàn bộ thư mục "libs"), nhấp chuột phải vào nó và chọn tùy chọn 'Thêm dưới dạng thư viện' từ danh sách. Nó sẽ làm phần còn lại ...

nhập mô tả hình ảnh ở đây


Đơn giản nhất và là cách chúng ta thường làm từ thời Eclipse.
Sufian

3
Đơn giản và đơn giản !!
Anaximandro Andrade

3
Loại khó chịu nó vẫn yêu cầu một "tên" sau đó, bạn có thể để lại bất kỳ rác trong đó?
splititherzero

Điều này cũng giúp tôi!
Preeti Joshi

Tôi đang đối mặt với vấn đề trong khi chạy chương trình trong thiết bị đầu cuối trong IntelliJ. Tôi đã sử dụng câu lệnh nhập để sử dụng các lớp mà tôi yêu cầu trong chương trình. Trong khi tôi chạy nó trong IDE, nó chạy tốt. Nhưng khi tôi cố gắng biên dịch từ dòng lệnh% javac MyProgram.java, nó báo lỗi: không thể tìm thấy biểu tượng. -
don_Gunner94

20

Bạn thêm chúng dưới dạng thư viện vào mô-đun của bạn.

Tôi thường có một /libthư mục trong nguồn của tôi. Tôi đặt tất cả các JAR tôi cần ở đó, thêm / lib làm thư viện và biến nó thành một phần của các phụ thuộc mô-đun.

Cập nhật 2018: Tôi đang sử dụng IntelliJ 2017/2018 ngay bây giờ.

Tôi hoàn toàn cam kết với Maven và Nexus để quản lý phụ thuộc.

Đây là con đường mà thế giới đã đi. Mọi dự án Java mã nguồn mở mà tôi biết đều sử dụng Maven hoặc Gradle. Bạn cũng nên.


Có, nhưng nếu pom Maven không được gọi là pom.xml thì sao? Sau đó, có vẻ như tôi không thể đọc phụ thuộc Maven.
dùng1001630

4
Quy ước là gọi nó là pom.xml. Thực hiện theo quy ước và đổi tên tập tin của bạn.
duffymo

Tôi vẫn thấy cần, khi bình không có repo maven ... nhưng, tôi không hiểu làm thế nào để làm điều này một cách chính xác. Tôi hiểu làm thế nào để thêm một thư mục, tôi cũng không hiểu làm thế nào để nhập nó vào javadocs. nó hoạt động khi tôi thêm một jar như một tệp duy nhất, nhưng không phải nếu tôi thêm một thư mục. Nó chỉ đơn giản là không thể?
ycomp

Đây là lời khuyên âm thanh. Thêm lọ bằng tay là tốn thời gian và dễ bị lỗi. Các phụ thuộc của bạn phải luôn được cấu hình "thông qua mã", trong pom.xml(đối với maven) hoặc bất cứ điều gì tương đương với lớp.
vikingsteve

1
Tất cả các JAR đều có repo. Nếu nó không có sẵn trong một repo công khai hoặc riêng tư, bạn có thể mvn cài đặt thủ công trong địa phương .m2 của bạn. Không có lý do để làm khác.
duffymo

17

Nếu bạn đang xây dựng dự án của mình bằng gradle, bạn chỉ cần thêm một dòng vào các phụ thuộc trong build.gradle:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

và sau đó thêm thư mục vào dự án gốc hoặc mô-đun của bạn:

nhập mô tả hình ảnh ở đây

Sau đó, bạn thả lọ của bạn vào đó và bạn tốt để đi :-)


Tôi đang đối mặt với vấn đề trong khi chạy chương trình trong thiết bị đầu cuối trong IntelliJ. Tôi đã sử dụng câu lệnh nhập để sử dụng các lớp mà tôi yêu cầu trong chương trình. Trong khi tôi chạy nó trong IDE, nó chạy tốt. Nhưng khi tôi cố gắng biên dịch từ dòng lệnh% javac MyProgram.java, nó báo lỗi: không thể tìm thấy biểu tượng. -
don_Gunner94

7

Tôi sử dụng phương pháp này và nó hoạt động tốt:

1- Sao chép và dán các .jartập tin trong libsthư mục.

2- Thêm compile fileTree(dir: 'libs', include: '*.jar')vào dependenciestrong build.gradlesau đó tất cả các lọ trong libsthư mục sẽ được bao gồm ..

3- Nhấp chuột phải vào libsthư mục và chọn tùy chọn 'Thêm dưới dạng thư viện' từ danh sách.


Cảm ơn bạn, đây là điều duy nhất làm việc cho tôi!
Gregordy

Tôi đang đối mặt với vấn đề trong khi chạy chương trình trong thiết bị đầu cuối trong IntelliJ. Tôi đã sử dụng câu lệnh nhập để sử dụng các lớp mà tôi yêu cầu trong chương trình. Trong khi tôi chạy nó trong IDE, nó chạy tốt. Nhưng khi tôi cố gắng biên dịch từ dòng lệnh% javac MyProgram.java, nó báo lỗi: không thể tìm thấy biểu tượng.
don_Gunner94

5

Thư viện không thể được sử dụng trực tiếp trong bất kỳ chương trình nào nếu không được thêm đúng vào các tập tin lớp dự án.

Điều này có thể dễ dàng được thực hiện trong các IDE thông minh như inteli J.

1) Đầu tiên là một quy ước thêm một tên thư mục 'libs' trong tệp src dự án của bạn. (điều này có thể dễ dàng được thực hiện bằng chính IDE)

2) sau đó sao chép hoặc thêm tệp thư viện của bạn (ví dụ: tệp .jar) vào thư mục có tên 'libs'

3) bây giờ bạn có thể thấy tệp thư viện trong thư mục libs. Bây giờ, nhấp chuột phải vào tệp và chọn 'thêm dưới dạng thư viện'. Và điều này sẽ sửa tất cả các tệp có liên quan trong chương trình và thư viện của bạn sẽ có sẵn trực tiếp để bạn sử dụng.

Xin lưu ý:

Bất cứ khi nào bạn thêm thư viện vào dự án, hãy đảm bảo rằng dự án hỗ trợ thư viện


3

Một số trợ giúp tuyệt vời được tìm thấy ở đây. Tuy nhiên, tôi vẫn không thể làm cho nó hoạt động mặc dù đã tải JAR đúng cách. Sau đó tôi phát hiện ra rằng tôi vô tình tạo mô-đun trong cấu trúc tệp thay vì thư mục thông thường và chính mô-đun này đã được chọn trước trong cài đặt dự án.

Đây là dấu chân:

Tệp -> Cấu trúc dự án -> Mô-đun -> (chọn mô-đun phù hợp nếu bạn có nhiều hơn) -> Phụ thuộc -> + -> JAR hoặc Thư viện


3

Mặc dù tôi đồng ý với các câu trả lời trước đó, điều quan trọng cần lưu ý là làm thế nào để truy cập mã của các thư viện bên ngoài đó.

Ví dụ: để truy cập một lớp trong thư viện bên ngoài, bạn sẽ muốn sử dụng từ khóa nhập theo sau là tên của thư viện bên ngoài, tiếp tục với ký hiệu dấu chấm cho đến khi đạt được lớp mong muốn.

Nhìn vào hình ảnh bên dưới để xem cách tôi nhập lớp CodeGenerationException từ thư viện quickfixj.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.