Eclipse'den java.library.path nasıl ayarlanır


209

java.library.pathBütün bir Eclipse Projesi için nasıl ayarlayabilirim ? İşletim sistemine özgü dosyalara dayanan ve bulmanız gereken bir Java kütüphanesi kullanıyorum .dll/ .so/ .jnilib. Ancak uygulama her zaman bu dosyaların kitaplık yolunda bulunmadığını bildiren bir hata iletisiyle çıkar.

Bu projenin tamamını kütüphane yolunu kullanacak şekilde yapılandırmak istiyorum. Tutulma bazı çalışma yapılandırmalarına bir VM argümanı olarak yol eklemeye çalıştım ama işe yaramadı.


1
Bunu bir VM argümanı olarak ekleyerek yaptım ve işe yaradı. Tam olarak nasıl yaptın?
Michael Myers

Yanıtlar:


297

Kütüphane yolunu karıştırmayın! Eclipse bunu kendisi oluşturur!

Bunun yerine, projelerinizin kitaplık ayarlarına gidin ve yerel bir kitaplık gerektiren her kavanoz / vb . İçin Kitaplıklar sekmesinde genişletin . Buradaki ağaç görünümünde, her kitaplığın kaynak / javadoc ve yerel kitaplık konumları için öğeleri vardır.

Özellikle: seçin Project, sağ tıklayın -> Özellikler / Java Oluşturma Yolu / Kütüphaneler sekmesi, bir .jar seçin, genişletin, Yerel kütüphane konumu'nu seçin , Düzenle'yi tıklayın , klasör seçici iletişim kutusu görünecektir)

Komut satırındaki kütüphane yolu ile uğraşmak son hendek çabanız olmalıdır, çünkü zaten tutulma tarafından düzgün bir şekilde ayarlanmış bir şeyi kırabilirsiniz.

Yerel kütüphane konumu


6
Ekleyecek birden fazla klasörünüz varsa bu nasıl çalışır?
Dan

2
bu iyi bir soru. Neden bir kavanoz için birden fazla yerel kütüphane klasörünüz var? Yerli kütüphaneleri kendilerini kavanoza yerleştirebilmenin bir yolu olduğundan eminim, bu yüzden gitmek için bir yol olabilir mi?
John Gardner

1
Üzerinde çok az kontrole sahip olduğum eski bir proje üzerinde çalışıyorum. Proje yapısını kesinlikle değiştiremem. Şu an için çözümüm her şeyi PATH'ım üzerine koymak - ama bu çok hoş değil.
Dan

1
işletim sistemine bağlı olarak, diğer kütüphanelere sembolik bağlantılar olan bir dizin oluşturabilir misiniz? veya en azından geliştirme amacıyla tüm kütüphaneleri tek bir dizine kopyalayabilirsiniz.
John Gardner

2
Bu çubuğu yapamam. Yerel kütüphane yolunu ekleyebilirim, ancak geri dönmek için Tamam'ı tıkladığımda proje özelliklerine tekrar atladığımda "Yok" yazıyor. Tutulma Indigo SR2 kullanıyorum
bacar

37

Bunu bir VM argümanı olarak ekliyorsanız, ön ekin önüne eklediğinizden emin olun -D:

-Djava.library.path=blahblahblah...

3
Bu gönderiye bakın: stackoverflow.com/a/2309723/510583 . -Djava.library.path = "$ {workspace_loc: project} \ lib; $ {env_var: PATH}"
leo

23

Onaylanan cevapta açıklanan yol dışında, projenizde tek yerli kütüphaneniz varsa başka bir yol daha vardır.

  • Proje özellikleri-> Java Derleme Yolu-> Sekme "Kaynak" içinde kaynak klasörlerinizin bir listesi vardır
  • Her giriş için, çalışma alanındaki yolları da destekleyen "Yerel kitaplık konumları" vardır.
  • Bu Eclipse onu sizin eklemek yapacak java.library.path.

2
müthiş !!!! çok teşekkürler!!! bu benim sorunumu çözdü. Projeme dylib ve bir kavanoz eklemem gerekiyordu. yerel kütüphane konumunun ayarlanması düzeltildi!
ufk

11

Belirli bir uygulama lansmanı için jim'in söylediği gibi yapabilirsiniz.

Tüm çalışma alanı için ayarlamak istiyorsanız,

Window->
  Preferences->
    Java->
      Installed JREs

Her JRE'nin bir "Varsayılan VM bağımsız değişkenleri" vardır (çalışma yapılandırması için herhangi bir VM bağımsız değişkeni ayarlanmışsa tamamen yok sayıldığını düşünüyorum).

Farklı parametrelerle farklı JRE / JDK'lar bile kurabilir ve bazı projelerin birini kullanmasını, diğer projelerin başka birini kullanmasını sağlayabilirsiniz.


8

Sadece ekleyebilir -Djava.library.path=yourPathiçin eclipse.ini.


6

Sadece eklemek *.dlliçin dosyaları sizinc:/windows

Aşağıdaki kodlardan java.library.path dosyasını alabilirsiniz: ve sonra aldığınız herhangi bir yol altında dll dosyalarını ekleyebilirsiniz

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"));
    }
}

Bu, projenizi kullanan herkesin de onları oraya koyması gerektiği anlamına gelir.
xtofl

Bunun için teşekkürler. DLL'leri koymak fikri c:/windowsbana sadece bir yol sorunu olduğunu ve DLL ile ilgili bir sorun olduğunu kanıtladı.
vegemite4me

5

Yukarıdaki çözümlerin hiçbiri benim için çalışmadı (JDK 1.7_015 ile Eclipse Juno). Java, kitaplıkları yalnızca onları project_folder / lib'den project_folder'a taşıdığımda bulabilirdi.


Ne? Bu neden önemli olmalı ..? O_o
Campa

5

Bence set yapmak istemenin başka bir nedeni daha var java.library.path. Subversion birçok kütüphane ile birlikte gelir ve Eclipse eklenmedikçe bunları görmez java.library.path. Örneğin, OS-X'dayım, bu yüzden kütüphaneler altında \opt\subversion\lib. Birçoğu var ve onları oldukları yerde tutmak istiyorum (standart bir lib dizinine kopyalamamak).

Proje ayarları bunu düzeltmez.


java.library.path parametrelerini nereye eklemem gerekir?
eLRuLL

4

Çalıştır'ı
tıklatın Hata Ayıkla'yı tıklatın ...
Yeni Java Uygulaması 2. kutudaki (VM Arguments)
Arguments sekmesini tıklayın
-D girişini ekleyin

-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  

vb...


1
Ayrıca - çalıştırma yapılandırmasında "Ortak" sekmesine gidin ve çalıştırma yapılandırmasını kaydetmek için projenizde bir yer seçin. Bu, ekibinizdeki diğer kullanıcıların yeniden kullanabilmesi için bu çalıştırma yapılandırmasını (xxxx.launch dosyası) kontrol etmenizi sağlar.
Scott Stanchfield

3

Başka bir çözüm 'çalıştırma yapılandırmasını' açmak ve daha sonra 'Ortam' sekmesinde {Yol, Değer} çiftini ayarlamak olacaktır.

Örneğin, projenin kök dizininde bulunan bir 'lib' dizini eklemek için,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

Ama belki doğrudan VM argüman -Djava.library.pathiçinde Argümanlar sekmesine?
Campa


1

Mac OS X Yosemite ve Netbeans 8.02 kullanıyorum, aynı hatayı aldım ve bulduğum basit çözüm yukarıdaki gibi, projeye yerel kütüphaneyi dahil etmeniz gerektiğinde yararlıdır. Netbeans için bir sonrakini yapın:

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

Umarım birisi için faydalı olabilir. Çözümü bulduğum bağlantı burada: java.library.path - Nedir ve nasıl kullanılır


0

Bazen projeye doğrudan sağ tıklayarak Java Oluşturma Yolu alamıyoruz. sonra özelliklere gidin ....Sağ Tıkla ve özelliklere git

Sonra Java derleme yoluna tıklayınÖzellikler Scrren

Harici kavanoz ekle'ye tıklayın

Harici kavanoz eklemek sekmesine tıklayın ve kavanozlarınızın saklandığı bilgisayar dosyanızın yolunu verin.


0

İşte başka bir düzeltme:

Oluşturma sistemim (Gradle), Eclipse oluşturma yoluna gerekli bir yerel kitaplık (dll) ekledi (Proje -> Özellikler -> Java Oluşturma Yolu -> Kütüphaneler'e sağ tıklayın). Derleme sistemine Eclipse sınıfyoluna yerel dll kütüphanesini eklememesini söylemek sorunu çözdü.


0

Eclipse'inize vm argümanı ekleyebilirsiniz.

Misal :

-Djava.ext.dirs=cots_lib

cots_libharici klasör kitaplığınız nerede .


-1

tutulmanın en kolay yolu tutulma IDE'sini kullanmaktır. Menüye gidin ve oluşturma yolunu ayarlayın. Dizininizdeki JAVA JDK ve JRE dosya yolunu göstermesini sağlayın. daha sonra derlenmiş dosyaların ayarlanacağı oluşturma yolunu kontrol edebilirsiniz. bin klasöründe varsayılan olarak. En iyi şey, tutulmanın kendi oluşturma yolunu işlemesine izin vermek ve yalnızca yukarıda verilen çözüme benzer şekilde düzenlemektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.