1

関連するスレッドに投稿された方法 (保護されたドメインの取得など) を試しましたが、SuSE Linux Enterprise Server 10 で Jar を実行すると、現在の作業ディレクトリを示すドット (.) だけの文字列が返されます。

私は、本番用のJavaアプリをすでに実行しているサーバー上のシステム情報を取得するためにネイティブライブラリを必要とするjarを持っています(したがって、悪いことが起こらずにjava.library.pathを台無しにできるとは思いません)。

実行中の jar のパスを見つけて、その文字列を使用して System.load("my/path/to/native/libs") ステートメントを作成できることを願っています。相対パスに System.loadLibrary を使用しようとして失敗しました。ネイティブ ライブラリは、デプロイしている Java アプリのルート ディレクトリにあります。

これは私が他のスレッドから試みた方法の1つです:

 File fl = new File(SystemInfoGrabber.class.getProtectionDomain().getCodeSource().getLocation().getPath());
        System.out.println(fl.getPath());

これは、SuSE でピリオド (.) を返します。

4

0 に答える 0