Cách đặt java.l Library.path từ Eclipse


209

Làm cách nào tôi có thể thiết lập java.library.pathcho toàn bộ Dự án Eclipse? Tôi đang sử dụng một thư viện Java dựa trên các tệp cụ thể của HĐH và cần tìm một .dll/ .so/ .jnilib. Nhưng Ứng dụng luôn thoát với thông báo lỗi rằng các tệp đó không được tìm thấy trên đường dẫn thư viện.

Tôi muốn cấu hình toàn bộ dự án này để sử dụng đường dẫn thư viện. Tôi đã cố gắng thêm đường dẫn dưới dạng đối số VM vào một số cấu hình chạy trong nhật thực nhưng điều đó không hiệu quả.


1
Tôi đã thực hiện nó bằng cách thêm nó dưới dạng đối số VM và nó đã hoạt động. Làm thế nào chính xác bạn đã làm điều đó?
Michael Myers

Câu trả lời:


297

Đừng lộn xộn với đường dẫn thư viện! Eclipse tự xây dựng nó!

Thay vào đó, hãy đi vào cài đặt thư viện cho các dự án của bạn và, đối với mỗi jar / etc yêu cầu thư viện riêng, hãy mở rộng nó trong tab Thư viện . Trong chế độ xem dạng cây ở đó, mỗi thư viện có các mục cho các vị trí thư viện nguồn / javadoc và thư viện gốc.

Cụ thể: chọn Project, nhấp chuột phải -> tab Thuộc tính / Java Build Path / L Thư viện , chọn một .jar, mở rộng nó, chọn Vị trí thư viện gốc , nhấp vào Chỉnh sửa , hộp thoại chọn thư mục sẽ xuất hiện)

Lộn xộn với đường dẫn thư viện trên dòng lệnh sẽ là nỗ lực cuối cùng của bạn, bởi vì bạn có thể phá vỡ thứ gì đó đã được thiết lập đúng bởi nhật thực.

Vị trí thư viện bản địa


6
Nhưng làm thế nào để nó hoạt động nếu bạn có nhiều hơn một thư mục để thêm?
Dan

2
đó là một câu hỏi hay. Tại sao bạn có nhiều thư mục của các thư viện riêng cho một jar? Tôi khá chắc chắn rằng có một cách mà bạn có thể tự nhúng các thư viện riêng vào trong jar, vậy đó có phải là cách để đi không?
John Gardner

1
Tôi đang làm việc trong một dự án cũ mà tôi có rất ít quyền kiểm soát. Tôi chắc chắn không thể thay đổi cấu trúc dự án. Cách giải quyết của tôi lúc này là đặt mọi thứ vào ĐƯỜNG của tôi - nhưng điều đó không tốt lắm.
Dan

1
tùy thuộc vào hệ điều hành, bạn có thể tạo một thư mục là tất cả các liên kết tượng trưng đến các thư viện khác không? hoặc ít nhất cho mục đích phát triển, bạn có thể sao chép tất cả các lib vào một thư mục.
John Gardner

2
Tôi không thể làm cho thanh này. Tôi có thể thêm đường dẫn thư viện riêng, nhưng khi tôi nhấn OK để quay trở lại thì nhảy vào thuộc tính dự án một lần nữa, nó báo "Không". Tôi đang sử dụng nhật thực Indigo SR2
bacar

37

Nếu bạn đang thêm nó dưới dạng đối số VM, hãy đảm bảo bạn thêm tiền tố vào -D:

-Djava.library.path=blahblahblah...

3
Xem bài đăng này: stackoverflow.com/a/2309723/510583 . -Djava.l Library.path = "$ {workspace_loc: project} \ lib; $ {env_var: PATH}"
leo

23

Ngoại trừ cách được mô tả trong câu trả lời được phê duyệt, còn có một cách khác nếu bạn có các lib bản địa duy nhất trong dự án của mình.

  • trong thuộc tính Project-> Java Build Path-> Tab "Source" có một danh sách các thư mục nguồn của bạn
  • Đối với mỗi mục, có "Vị trí thư viện gốc", cũng hỗ trợ các đường dẫn trong không gian làm việc.
  • Điều này sẽ làm cho Eclipse thêm nó vào của bạn java.library.path.

2
tuyệt vời!!!! cảm ơn rất nhiều!!! đã giải quyết vấn đề của tôi. cần thiết để thêm dylib vào dự án của tôi và một cái bình. thiết lập vị trí thư viện riêng cố định nó!
ufk

11

Đối với một khởi chạy ứng dụng nhất định, bạn có thể làm điều đó như jim nói.

Nếu bạn muốn đặt nó cho toàn bộ không gian làm việc, bạn cũng có thể đặt nó bên dưới

Window->
  Preferences->
    Java->
      Installed JREs

Mỗi JRE có một "đối số VM mặc định" (mà tôi tin là hoàn toàn bị bỏ qua nếu có bất kỳ đối số VM nào được đặt cho cấu hình chạy.)

Bạn thậm chí có thể thiết lập các JRE / JDK khác nhau với các tham số khác nhau và có một số dự án sử dụng một, các dự án khác sử dụng một dự án khác.


8

Bạn chỉ có thể thêm -Djava.library.path=yourPathvào eclipse.ini.


6

Chỉ cần thêm các *.dlltập tin vàoc:/windows

Bạn có thể lấy java.l Library.path từ các mã sau: và sau đó thêm các tệp dll của bạn theo bất kỳ đường dẫn nào bạn nhận được

import java.util.logging.Logger;

public class Test {


    static Logger logger = Logger.getLogger(Test.class.getName());
    public static void main(String[] args) {
    logger.info(System.getProperty("java.library.path"));
    }
}

Điều này có nghĩa là mọi người sử dụng dự án của bạn cũng sẽ cần đặt chúng ở đó.
xtofl

Cảm ơn vì điều đó. Ý tưởng đưa DLL vào c:/windowsđã chứng minh với tôi rằng đó chỉ là vấn đề về đường dẫn chứ không phải vấn đề với DLL.
vegemite4me

5

Không có giải pháp nào ở trên hoạt động với tôi (Eclipse Juno với JDK 1.7_015). Java chỉ có thể tìm thấy các thư viện khi tôi chuyển chúng từ project_folder / lib sang project_folder.


Gì? Tại sao điều đó lại quan trọng ..? O_o
Campa

5

Tôi nghĩ rằng có một lý do khác để muốn thiết lập java.library.path. Subversion đi kèm với nhiều thư viện và Eclipse sẽ không thấy những thứ này trừ khi java.library.pathcó thể được thêm vào. Ví dụ: tôi đang dùng OS-X, vì vậy các thư viện nằm dưới\opt\subversion\lib . Có rất nhiều trong số họ và tôi muốn giữ chúng ở nơi chúng (không sao chép chúng vào một thư mục lib tiêu chuẩn).

Cài đặt dự án sẽ không khắc phục điều này.


sau đó, tôi cần thêm các tham số java.l Library.path ở đâu?
eLRuLL

4

Bấm Chạy
Bấm Gỡ lỗi ...
Ứng dụng Java mới
Bấm tab Đối số
trong hộp thứ 2 (Đối số VM) thêm mục -D

-Xdebug -verbose:gc -Xbootclasspath/p:jar/vbjorb.jar;jar/oracle9.jar;classes;jar/mq.jar;jar/xml4j.jar -classpath -DORBInitRef=NameService=iioploc://10.101.2.94:8092/NameService  

Vân vân...


1
Ngoài ra - trong cấu hình chạy, hãy chuyển đến tab "Chung" và chọn một vị trí trong dự án của bạn để lưu cấu hình chạy. Điều này cho phép bạn kiểm tra cấu hình chạy đó (tệp xxxx.launch) để những người khác trong nhóm của bạn có thể sử dụng lại nó.
Scott Stanchfield

3

Một giải pháp khác là mở 'cấu hình chạy' và sau đó trong tab 'Môi trường', đặt cặp {Đường dẫn, Giá trị}.

Chẳng hạn, để thêm một thư mục 'lib' nằm ở thư mục gốc của dự án,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

Nhưng có lẽ trực tiếp đối số VM -Djava.library.pathtrong tab Đối số ?
Campa


1

Tôi đang sử dụng Mac OS X Yosemite và Netbeans 8.02, tôi cũng gặp lỗi tương tự và giải pháp đơn giản tôi đã tìm thấy giống như trên, điều này rất hữu ích khi bạn cần đưa thư viện gốc vào dự án. Vì vậy, làm tiếp theo cho Netbeans:

1.- Right click on the Project
2.- Properties
3.- Click on RUN
4.- VM Options: java -Djava.library.path="your_path"
5.- for example in my case: java -Djava.library.path=</Users/Lexynux/NetBeansProjects/NAO/libs>
6.- Ok

Tôi hy vọng nó có thể hữu ích cho một ai đó. Liên kết nơi tôi tìm thấy giải pháp ở đây: java.l Library.path - Nó là gì và sử dụng như thế nào


0

Đôi khi chúng tôi không nhận được Java Build Path bằng cách nhấp chuột phải vào dự án. sau đó đi đến tài sản ....Nhấp chuột phải và đi đến tài sản

Sau đó bấm vào đường dẫn xây dựng javaThuộc tính Scrren

Bấm vào thêm bình ngoài

Nhấp vào tab thêm các lọ bên ngoài và đưa ra đường dẫn của tệp máy tính của bạn nơi bạn đã lưu trữ các tệp.


0

Đây là một sửa chữa khác:

Hệ thống xây dựng của tôi (Gradle) đã thêm một thư viện riêng (dll) cần thiết vào đường dẫn xây dựng Eclipse (Nhấp chuột phải vào Dự án -> Thuộc tính -> Đường dẫn xây dựng Java -> Thư viện). Nói hệ thống xây dựng không thêm thư viện dll riêng vào đường dẫn lớp Eclipse đã giải quyết vấn đề.


0

Bạn có thể thêm đối số vm trong Eclipse của bạn.

Thí dụ :

-Djava.ext.dirs=cots_lib

cots_libthư viện thư mục bên ngoài của bạn ở đâu


-1

cách dễ nhất để sử dụng IDE nhật thực. Chuyển đến menu và thiết lập đường dẫn xây dựng. Làm cho nó trỏ đến đường dẫn tệp JAVA JDK và JRE trong thư mục của bạn. sau đó bạn có thể kiểm tra đường dẫn xây dựng nơi các tệp được biên dịch sẽ được đặt. trong thư mục bin theo mặc định. Điều tốt nhất sẽ là cho phép nhật thực tự xử lý đường dẫn xây dựng và chỉ chỉnh sửa nó tương tự như giải pháp được đưa ra ở trên

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.