CORBA を利用する既存の Java アプリケーションがあります。その結果、java.endorsed.dirsコマンド ライン パラメータを使用して、使用している CORBA ライブラリを含むディレクトリを指定します。アプリケーションは現在、次のコマンド ラインで問題なく実行されています。
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.endorsed.dirs=./lib -jar "myapp.jar"
ここで、アプリケーションに WorldWind サポートを追加する必要があります。WorldWind jar ファイルはネイティブ ライブラリを呼び出し、java.library.pathコマンド ライン パラメーターを使用して、ネイティブ ライブラリを含むディレクトリを指すように指示しているようです。次のコマンド ラインを使用する場合 (java.library.path を追加):
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.endorsed.dirs=./lib -Djava.library.path="./lib" -jar "myapp.jar"
アプリケーションを実行すると、次のエラーが表示されます。
..Exception in thread "main" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
「gluegen-rt」は、WorldWind が使用するライブラリの 1 つです。上記の例外は、WorldWind ライブラリを見つけるのに苦労しているということです
コマンドラインから java.endorsed.dirs ディレクトリを削除すると
java -splash:images/logo.png -Xms64m -Xmx1024m -Djava.library.path="./lib" -jar "myapp.jar"
...その後、私のアプリケーションは正常に動作します (ただし、現在はデフォルトの CORBA 実装を使用しており、製品に同梱されているものではありません)。
このトピックで見つけた唯一のリンクはこちらですが、その質問には答えがないようだったので、ここで質問しようと思いました.
これら 2 つのコマンド ライン パラメーターは共存できますか? そうでない場合、回避策はありますか?
注: Red Hat Linux でこれを実行しています。受け取ったコメントに基づいて、アプリを実行する前に LD_LIBRARY_PATH を設定してみました。それは何の違いもありませんでした。
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:./lib
注:エンド ユーザーのセットアップに基づいて、CORBA ファイルを標準の jre /endorsed ディレクトリに配置することはできません。
注:この質問は CORBA や WorldWind に固有のものではないと思いますが、前述のコマンド ライン パラメーターの両方を使用している理由を説明したいと思います。