C++で書かれた、異なるオペレーティングシステム用にコンパイルされた共有ライブラリを使用するJavaアプリケーションをビルドします。問題は、この共有ライブラリ自体が、適切な環境変数(PATH、LIBRARY_PATHまたはLD_LIBRARY_PATH)で通常見つかる追加のライブラリに依存することです。実行時に共有ライブラリをパスでロードする
これらの環境変数は設定できますが、設定したくない場合もあります。私は、プラグインのように、ランタイムに必要な共有ライブラリを指定されたパスからロードします。そして、いいえ、新しい環境で新しいプロセスを開始する起動アプリケーションは必要ありません。誰もこれを達成する方法を知っていますか?
私が使用するライブラリの1つは、指定されたパスからプラグインを読み込むことができるので、これが可能でなければならないことは知っています。もちろん、私はプラットフォームに依存しないコードを好んでいますが、これが不可能な場合は、Windows、Linux、MacOS用の別々のソリューションでも可能です。
EDIT 私が使用したいと思い、共有ライブラリは、単一機能の結合は、それをしないことを意味し、オブジェクト指向であることを言及している必要があります。
Javaからライブラリをロードするにはどうすればよいですか? –
Javaネイティブアクセス(JNA) – aRestless