これはこの質問のフォローアップです
私がやろうとしていること:
CPU情報を取得するためにSigarライブラリを使用するEclipseプロジェクトがあります(とりわけ)。これを行うには、Sigar が動作するライブラリ ファイルが必要です。各 CPU/OS には異なるファイルがあり、それらはすべて利用可能です。これを jar にパックして、他のアプリケーションがライブラリとして使用できるようにする必要があります。
私がやったこと:
利用可能なライブラリファイルをプロジェクトに追加し、そのようにアクセスできます
System.setProperty("org.hyperic.sigar.path",System.class.getResource("/lib").getPath());
System.load(System.class.getResource(getClass().getResource(
"/lib/libsigar-amd64-linux.so").toString()).getPath());
アプリケーションをスタンドアロン アプリケーションとして実行すると、これらはどちらも機能するようです。jar にパックして他のプロジェクトから実行しようとすると、うまくいきません。ディレクトリやファイルを見ることができません。
これは、考えられる任意のパスでファイルにアクセスしようとした
プロジェクトの構造ですが、すべてが NullPointerException を返しました。
これどうやってするの?一時ファイルを使用していますか? クライアントアプリケーションのハードウェア/OSがわからないため、1つのファイルだけでなくフォルダー全体をロードしたいと思います。