Eclipseからjava.library.pathを設定する方法


209

java.library.pathEclipseプロジェクト全体にを設定するにはどうすればよいですか?OS固有のファイルに依存するJavaライブラリを使用しており、を見つける必要があります.dll/ .so/ .jnilib。ただし、アプリケーションは常に、これらのファイルがライブラリパスに見つからないというエラーメッセージで終了します。

ライブラリパスを使用するようにこのプロジェクト全体を構成したいと思います。パスをVM引数としてEclipseの一部の実行構成に追加しようとしましたが、機能しませんでした。


1
私はそれをVM引数として追加してそれを実行しましたが、うまくいきました。どのように正確にそれをしましたか?
マイケル・マイヤーズ

回答:


297

ライブラリパスを変更しないでください。Eclipseはそれ自体をビルドします!

代わりに、プロジェクトのライブラリ設定に移動し、ネイティブライブラリが必要なjar / etcごとに、[ ライブラリ ]タブでライブラリを展開します。そこのツリービューでは、各ライブラリにsource / javadocのアイテムとネイティブライブラリの場所があります。

具体的に:選択してProject右クリックし、 - > プロパティ / Javaビルド・パス / ライブラリ ]タブを選択し、それを展開する、の.jarを選択し、ネイティブライブラリの場所をクリックし、[編集]を、フォルダ選択ダイアログのダイアログが表示されます)

コマンドラインでライブラリパスをいじることは、Eclipseによって既に適切に設定されているものを壊す可能性があるため、最後の作業です。

ネイティブライブラリの場所


6
しかし、追加するフォルダが複数ある場合、これはどのように機能しますか?
Dan

2
それは良い質問です。1つのjarにネイティブライブラリのフォルダが複数あるのはなぜですか?私はあなたがjarにネイティブライブラリ自体を埋め込むことができる方法があるので、それが行く方法かもしれないと確信しています?
John Gardner、2010年

1
私は自分がほとんど制御できないレガシープロジェクトに取り組んでいます。プロジェクトの構造を変更することはできません。当面の回避策は、すべてをPATHに置くことですが、それはそれほど良くありません。
Dan

1
OSによっては、他のライブラリへのすべてのシンボリックリンクである1つのディレクトリを作成できますか?または、少なくとも開発目的で、すべてのライブラリを1つのディレクトリにコピーできます。
John Gardner

2
私はこの棒を作ることができません。ネイティブライブラリパスを追加できますが、[OK]をクリックして最後まで戻り、プロジェクトプロパティに再度ジャンプすると、「なし」と表示されます。私は日食インディゴSR2を使用しています
bacar

37

VM引数として追加する場合は、必ずプレフィックスを付けて-Dください。

-Djava.library.path=blahblahblah...

3
この投稿をご覧ください:stackoverflow.com/a/2309723/510583。-Djava.library.path = "$ {workspace_loc:project} \ lib; $ {env_var:PATH}"
leo

23

承認された回答で説明されている方法を除いて、プロジェクトに単一のネイティブライブラリがある場合は別の方法があります。

  • プロジェクトのプロパティ-> Javaビルドパス->タブ「ソース」に、ソースフォルダーのリストがあります。
  • 各エントリには、「ネイティブライブラリの場所」があり、ワークスペース内のパスもサポートしています。
  • これにより、Eclipseがそれをに追加しますjava.library.path

2
驚くばかり!!!!どうもありがとう!!!それで私の問題は解決しました。私のプロジェクトとjarファイルにdylibを追加する必要がありました。ネイティブライブラリの場所を設定すると修正されました!
ufk 2013

11

特定のアプリケーションの起動に対して、ジムが言うようにそれを行うことができます。

ワークスペース全体に設定する場合は、以下で設定することもできます

Window->
  Preferences->
    Java->
      Installed JREs

各JREには「デフォルトのVM引数」があります(実行構成にVM引数が設定されている場合、これは完全に無視されると思います)。

異なるパラメーターで異なるJRE / JDKをセットアップし、いくつかのプロジェクトで1つを使用し、他のプロジェクトで別のプロジェクトを使用することもできます。


8

あなたは、単に追加することができます-Djava.library.path=yourPatheclipse.ini


6

*.dllファイルを追加するだけですc:/windows

次のコードからjava.library.pathを取得し、取得した任意のパスの下にDLLファイルを追加できます。

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

これは、プロジェクトを使用するすべての人がそれらもそこに配置する必要があることを意味します。
xtofl

これをありがとう。DLLを配置するという考えはc:/windows、それが単なるパスの問題であり、DLLの問題ではないことを私に証明しました。
vegemite4me 2012年

5

上記の解決策はどれも私にはうまくいきませんでした(JDK 1.7_015を使用したEclipse Juno)。Javaは、project_folder / libからproject_folderにライブラリを移動したときにのみライブラリを見つけることができました。


何?なぜそれが重要なのでしょうか?O_o
Campa

5

設定したい理由はもう一つあると思いますjava.library.path。Subversionには多くのライブラリが付属しており、java.library.path追加できない場合、Eclipseはこれらを認識しません。たとえば、私はOS-Xを使用しているため、ライブラリはの下にあり\opt\subversion\libます。それらはたくさんありますが、私はそれらをそのままにしたいのです(標準のlibディレクトリにコピーしないでください)。

プロジェクト設定はこれを修正しません。


次に、java.library.pathパラメータをどこに追加する必要がありますか?
eLRuLL 2013

4

クリック実行
クリックデバッグ... 2番目のボックス(VM引数)の [
新しいJavaアプリケーション
クリック引数]タブ
に-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  

等...


1
また、実行構成で「共通」タブに移動し、プロジェクト内の場所を選択して実行構成を保存します。これにより、その実行構成(xxxx.launchファイル)をチェックインして、チームの他のメンバーが再利用できるようにすることができます。
スコットスタンチフィールド、

3

別の解決策は、「実行構成」を開き、次に「環境」タブで、カップル{Path、Value}を設定することです。

たとえば、プロジェクトのルートにある「lib」ディレクトリを追加するには、

    Path  <-  ${workspace_loc:name_of_the_project}\lib

しかし、おそらく直接VM引数-Djava.library.path引数のタブ?
Campa


1

私はMac OS X YosemiteとNetbeans 8.02を使用していますが、同じエラーが発生し、私が見つけた簡単な解決策は上記のようになりました。これは、プロジェクトにネイティブライブラリを含める必要がある場合に便利です。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

私はそれが誰かのために役立つことを願っています。私が解決策を見つけたリンクはここにあります: java.library.path –それは何で、どのように使用するか


0

プロジェクトを直接右クリックしてJavaビルドパスを取得できない場合があります。次にプロパティに移動します...右クリックしてプロパティに移動

次に、javaビルドパスをクリックします。プロパティScrren

外部jarの追加をクリックします

タブをクリックして外部jarを追加し、jarが保存されているコンピューターファイルのパスを指定します。


0

ここに別の修正があります:

私のビルドシステム(Gradle)は、必要なネイティブライブラリ(dll)をEclipseビルドパスに追加しました([プロジェクト]-> [プロパティ]-> [Javaビルドパス]-> [ライブラリ]を右クリック)。ビルドシステムにネイティブdllライブラリをEclipseクラスパスに追加しないように指示すると、問題は解決しました。



-1

Eclipse IDE自体を使用する最も簡単な方法です。メニューに移動し、ビルドパスを設定します。ディレクトリのJAVA JDKおよびJREファイルパスを指すようにします。その後、コンパイル済みファイルが設定されるビルドパスを確認できます。ただし、デフォルトではbinフォルダにあります。最良のことは、Eclipseにビルドパス自体を処理させ、上記の解決策と同様にそれを編集することだけを許可することです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.