Cara mengatur java.library.path dari Eclipse

209

Bagaimana saya dapat mengatur java.library.pathuntuk seluruh Proyek Eclipse? Saya menggunakan perpustakaan Java yang bergantung pada file OS tertentu dan perlu menemukan .dll/ .so/ .jnilib. Tetapi Aplikasi selalu keluar dengan pesan kesalahan bahwa file-file itu tidak ditemukan di jalur perpustakaan.

Saya ingin mengonfigurasi seluruh proyek ini untuk menggunakan jalur perpustakaan. Saya mencoba menambahkan path sebagai argumen VM untuk menjalankan beberapa konfigurasi di gerhana tetapi itu tidak berhasil.

Janusz
sumber
1
Saya sudah melakukannya dengan menambahkannya sebagai argumen VM dan itu berhasil. Bagaimana tepatnya Anda melakukannya?
Michael Myers

Jawaban:

297

Jangan main-main dengan jalur perpustakaan! Eclipse membangunnya sendiri!

Sebagai gantinya, masuk ke pengaturan perpustakaan untuk proyek Anda dan, untuk setiap jar / dll yang membutuhkan perpustakaan asli, perluas itu di tab Perpustakaan . Pada tampilan hierarki di sana, setiap perpustakaan memiliki item untuk sumber / javadoc dan lokasi perpustakaan asli.

Khususnya: pilih Project, klik kanan -> Properties / Java Build Path / Libraries tab, pilih .jar, perluas, pilih lokasi pustaka Asli , klik Edit , dialog pemilih folder akan muncul)

Bercak dengan jalur pustaka pada baris perintah harus menjadi upaya terakhir Anda, karena Anda mungkin memecahkan sesuatu yang sudah diatur dengan benar oleh gerhana.

Lokasi perpustakaan asli

John Gardner
sumber
6
Tetapi bagaimana cara kerjanya jika Anda memiliki lebih dari satu folder untuk ditambahkan?
Dan
2
itu pertanyaan yang bagus. Mengapa Anda memiliki lebih dari satu folder perpustakaan asli untuk satu toples? Saya cukup yakin ada cara di mana Anda dapat menanamkan perpustakaan asli sendiri ke dalam toples, sehingga mungkin cara untuk pergi?
John Gardner
1
Saya sedang mengerjakan proyek warisan di mana saya memiliki sedikit kontrol. Saya tentu saja tidak dapat mengubah struktur proyek. Solusi saya untuk saat ini adalah meletakkan semuanya di PATH saya - tapi itu tidak begitu baik.
Dan
1
tergantung pada OS, Anda dapat membuat satu direktori yang semua tautan simbolik ke perpustakaan lain? atau setidaknya untuk tujuan pengembangan Anda dapat menyalin semua lib ke satu direktori.
John Gardner
2
Saya tidak bisa membuat tongkat ini. Saya dapat menambahkan jalur pustaka asli, tetapi ketika saya mengklik OK untuk kembali lagi lalu beralih ke properti proyek lagi, dikatakan "Tidak Ada". Saya menggunakan eclipse Indigo SR2
bacar
37

Jika Anda menambahkannya sebagai argumen VM, pastikan Anda awali dengan -D:

-Djava.library.path=blahblahblah...
matt b
sumber
3
Lihat posting ini: stackoverflow.com/a/2309723/510583 . -Djava.library.path = "$ {workspace_loc: project} \ lib; $ {env_var: PATH}"
leo
23

Kecuali cara yang dijelaskan dalam jawaban yang disetujui, ada cara lain jika Anda memiliki lib asli tunggal dalam proyek Anda.

  • di Project properties-> Java Build Path-> Tab "Source" ada daftar folder sumber Anda
  • Untuk setiap entri, ada "Lokasi perpustakaan asli", yang juga mendukung jalur di dalam ruang kerja.
  • Ini akan membuat Eclipse menambahkannya ke java.library.path.
schieferstapel
sumber
2
luar biasa !!!! Terima kasih banyak!!! yang menyelesaikan masalah saya. perlu menambahkan dylib ke proyek saya dan toples. mengatur lokasi perpustakaan asli memperbaikinya!
ufk
11

Untuk peluncuran aplikasi tertentu, Anda dapat melakukannya seperti yang dikatakan jim.

Jika Anda ingin mengaturnya untuk seluruh ruang kerja, Anda juga dapat mengaturnya di bawah

Window->
  Preferences->
    Java->
      Installed JREs

Setiap JRE memiliki "Argumen VM Default" (yang saya yakini sepenuhnya diabaikan jika ada argumen VM yang diatur untuk menjalankan konfigurasi.)

Anda bahkan dapat mengatur JRE / JDK yang berbeda dengan parameter yang berbeda dan beberapa proyek menggunakan satu, proyek lain menggunakan yang lain.

Scott Stanchfield
sumber
8

Anda hanya dapat menambahkan -Djava.library.path=yourPathke eclipse.ini.

Sonaht
sumber
6

Cukup tambahkan *.dllfile ke file Andac:/windows

Anda bisa mendapatkan java.library.path dari kode follow: dan kemudian menambahkan Anda file dll di bawah jalur apa pun yang Anda dapatkan

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"));
    }
}
Tuan Lou
sumber
Ini berarti bahwa setiap orang yang menggunakan proyek Anda juga perlu meletakkannya di sana.
xtofl
Terima kasih untuk ini. Gagasan menempatkan DLL ke dalam c:/windowsmembuktikan kepada saya bahwa itu hanya masalah jalur dan bukan masalah dengan DLL.
vegemite4me
5

Tidak ada solusi di atas yang berfungsi untuk saya (Eclipse Juno dengan JDK 1.7_015). Java hanya bisa menemukan perpustakaan ketika saya memindahkannya dari project_folder / lib ke project_folder.

Günter
sumber
Apa? Kenapa itu harus penting ..? O_o
Campa
5

Saya pikir ada alasan lain untuk ingin mengatur java.library.path. Subversion datang dengan banyak perpustakaan dan Eclipse tidak akan melihatnya kecuali java.library.pathdapat ditambahkan. Misalnya saya menggunakan OS-X, jadi perpustakaan di bawah \opt\subversion\lib. Ada banyak dari mereka dan saya ingin menyimpannya di tempat mereka (tidak menyalinnya ke direktori lib standar).

Pengaturan proyek tidak akan memperbaikinya.

pengguna825628
sumber
lalu, di mana saya perlu menambahkan parameter java.library.path?
eLRuLL
4

Klik Jalankan
Klik Debug ...
Aplikasi Java Baru
Klik tab Argumen
di kotak 2 (VM Arguments) tambahkan entri -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  

dll ...

Jim
sumber
1
Juga - dalam konfigurasi run, buka tab "Common" dan pilih tempat di proyek Anda untuk menyimpan konfigurasi run. Ini memungkinkan Anda untuk memeriksa konfigurasi menjalankan (file xxxx.launch) sehingga orang lain di tim Anda dapat menggunakannya kembali.
Scott Stanchfield
3

Solusi lain adalah membuka 'jalankan konfigurasi' dan kemudian di tab 'Lingkungan', atur pasangan {Path, Value}.

Misalnya untuk menambahkan direktori 'lib' yang terletak di root proyek,

    Path  <-  ${workspace_loc:name_of_the_project}\lib
Aurelien
sumber
Tapi mungkin langsung argumen VM -Djava.library.pathdi tab Argumen ?
Campa
1

Ingatlah untuk memasukkan folder pustaka asli di PATH.

JuanFran Adame
sumber
1

Saya menggunakan Mac OS X Yosemite dan Netbeans 8.02, saya mendapatkan kesalahan yang sama dan solusi sederhana yang saya temukan adalah seperti di atas, ini berguna ketika Anda perlu memasukkan perpustakaan asli dalam proyek. Jadi lakukan yang berikutnya untuk 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

Semoga bermanfaat bagi seseorang. Tautan tempat saya menemukan solusinya ada di sini: java.library.path - Apa itu dan bagaimana menggunakannya

alexventuraio
sumber
0

Kadang-kadang kita tidak mendapatkan Java Build Path dengan langsung mengklik kanan pada proyek. lalu pergi ke properti ....Klik kanan dan pergi ke properti

Kemudian Klik pada java build pathProperti Scrren

Klik pada tambahkan jar eksternal

Klik pada tab tambahkan guci eksternal dan berikan jalur file komputer Anda di mana Anda menyimpan guci.

Vardhaman
sumber
0

Ini adalah perbaikan lain:

Sistem build saya (Gradle) menambahkan library asli yang diperlukan (dll) ke jalur build Eclipse (Klik kanan pada Project -> Properties -> Java Build Path -> Libraries). Memberitahu sistem build untuk tidak menambahkan perpustakaan dll asli ke classpath Eclipse memecahkan masalah.

marc
sumber
0

Anda dapat menambahkan argumen vm di Eclipse Anda.

Contoh:

-Djava.ext.dirs=cots_lib

di mana cots_libperpustakaan folder eksternal Anda.

della pramukti raharjo
sumber
-1

cara termudah untuk menggunakan IDE gerhana itu sendiri. Pergi ke menu dan atur path build. Arahkan ke jalur file JAW JDK dan JRE di direktori Anda. setelah itu Anda dapat memeriksa jalur pembangunan tempat file yang dikompilasi akan ditetapkan. dalam folder bin secara default. Hal terbaik adalah mengizinkan gerhana untuk menangani sendiri jalur pembangunan dan hanya mengeditnya mirip dengan solusi yang diberikan di atas

khangulmalik
sumber