2009-05-12 36 views
149

Tôi đang cố gắng để thêm một thư mục để classpath của một hồ sơ thi tuyển chạycách thêm thư mục vào classpath trong hồ sơ chạy ứng dụng trong ý tưởng intellij?

Nếu tôi ghi đè lên bằng cách sử dụng -cp x: mục tiêu/classes trong các thiết lập máy ảo, tôi nhận được lỗi sau:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain 

Bất kỳ ý tưởng nào về cách thêm thư mục vào đường dẫn lớp cho dự án của tôi?

+1

Nó không rõ ràng đối với tôi, nơi bạn đang cố gắng thêm điều đó.Từ dòng lệnh IJ? Hoặc trong thuộc tính dự án? –

Trả lời

171

Trong Intellij 13, có vẻ hơi khác một lần nữa. Dưới đây là hướng dẫn cho Intellij 13:

  1. nhấp chuột vào xem dự án hoặc thôi ẩn nó bằng cách nhấp vào "1: Dự án" nút trên biên giới trái của cửa sổ hoặc bằng cách nhấn Alt + 1
  2. tìm bạn dự án hoặc mô-đun phụ và nhấp vào nó để đánh dấu nó, sau đó nhấn F4 hoặc nhấp chuột phải và chọn "Cài đặt mô-đun mở" (trên IntelliJ 14 nó đã trở thành F12)
  3. nhấp vào tab phụ thuộc
  4. Nhấp vào "+ "nút bên phải và chọn" Chum hoặc thư mục ..."
  5. Tìm đường dẫn của bạn và nhấn OK
  6. Trong hộp thoại với 'Chọn Các loại tập tin được chọn', chọn lớp (thậm chí nếu thuộc tính của nó), nhấn OK và OK lần nữa
  7. Bây giờ bạn có thể chạy ứng dụng của bạn và nó sẽ có đường dẫn được chọn trong đường dẫn lớp học
+1

Vì vậy, làm thế nào bạn sẽ tạo ra để chạy cấu hình với hai thư mục khác nhau mà phải được độc quyền hiện diện trong một nhưng không phải là khác. Trong nhật thực, bạn có thể thêm/xóa bất kỳ thứ gì vào cấu hình khởi chạy. IntelliJ có hỗ trợ điều này không? –

+7

Khá rõ ràng là bạn có thể thay đổi classpath của * run configuration * changing * module * classpath. Nhưng câu hỏi chính xác là "cách thêm thư mục vào classpath trong một ứng dụng * chạy hồ sơ *". Vì vậy, thực tế đã được đưa ra bởi uaaquarius – dart

+0

Cảm ơn bạn! Điều này giải quyết vấn đề của tôi sau khi tuổi tìm kiếm xung quanh! – JonasCz

19

Tôi đang sử dụng Idea 8. trong tab phụ thuộc mô-đun của bạn (trong hộp thoại cấu trúc dự án). Thêm "Thư viện mô-đun". Ở đó bạn có thể chọn một Jar Directory để thêm vào. Sau đó, hãy đảm bảo rằng hồ sơ chạy đang sử dụng Classpath và JDK của mô-đun chính xác khi nó chạy (đây là trong hộp thoại chạy cấu hình.

30

Bạn có thể thử -Xbootclasspath/a: path tùy chọn trình khởi chạy ứng dụng java. mô tả nó chỉ định "một đường dẫn phân tách bằng dấu hai chấm, lưu trữ JAR và lưu trữ ZIP để nối thêm đường dẫn lớp khởi động mặc định."

+1

Một số tài liệu về cách -Xbootclasspath hoạt động: http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570 – Lambart

+1

Đây là câu trả lời hay vì nó không req uire bạn thay đổi cấu hình dự án của bạn. Trong thực tế, tôi nghĩ rằng nó trả lời câu hỏi tốt nhất. – Chewy

+1

Điều này không may đã không làm việc cho tôi, vì điều này dẫn đến tất cả các lớp được nạp từ classpath đó sẽ được load bởi trình nạp lớp bootstrap, nó phá vỡ mã giả định rằng Xyz.class.getClassLoader() không phải là null. – Njol

71

Có vẻ như IntelliJ 11 đã thay đổi phương thức và câu trả lời đã chọn không còn hoạt động nữa Trong trường hợp bất kỳ ai đến đây thông qua công cụ tìm kiếm, dưới đây là cách tôi giải quyết nó trong IntelliJ 11:

  1. Tới cơ cấu dự án, bấm vào Modules, và click vào của bạn Mô-đun
  2. Chọn "Dependencies" tab
  3. Nhấp vào nút "+" ở phía bên phải và chọn "Chum hoặc thư mục ... "
  4. Thêm thư mục (ies) mà bạn muốn (lưu ý bạn có thể chọn nhiều) và nhấn OK
  5. Trong hộp thoại hiện ra, chọn 'lớp học' và KHÔNG 'thư mục jar'
  6. Hãy chắc chắn rằng bạn' sử dụng lại Mô-đun đó trong mục tiêu chạy của bạn

Lưu ý rằng bước 5 có vẻ là sự khác biệt chính. Nếu bạn chọn "jar thư mục" nó sẽ trông giống hệt nhau trong IDE nhưng sẽ không bao gồm đường dẫn khi chạy. Dường như không có cách nào để xác định xem trước đây bạn đã chọn "lớp học" hay "thư mục jar" sau sự kiện.

+2

Cảm ơn bạn rất nhiều vì đã đăng bài này. Bạn chỉ cần tiết kiệm cho tôi một giờ hoặc lâu hơn. –

+0

Tôi có cùng một vấn đề như trước với IJ11 và rất vui khi tìm thấy câu trả lời đang chờ tôi lần này. – sal

+0

Hoàn hảo. Quá trình tương tự cho IJ12. Chạy qua bài đăng này khi cố gắng giải quyết 'java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver' Điều này giải quyết vấn đề kết nối. Cảm ơn – jkmurphy1

3

Giả sử bạn chỉ cần x: mục tiêu/lớp học trong đường dẫn lớp học của bạn. Sau đó, bạn chỉ cần thêm thư mục này vào classpath của bạn và% IDEA% \ lib \ idea_rt.jar. Bây giờ nó sẽ hoạt động. Đó là nó.

+0

Câu hỏi đặt ra là làm thế nào để bạn thêm thư mục này vào đường dẫn lớp của bạn trong IDEA? – Pacerier

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