2017-09-25 12 views
0

(単体)dllを使用する単純なスタンドアロンJavaアプリケーションを開発しています。ここまでは順調ですね。問題は、このdllの古いバージョンが既にほとんどのユーザーのPC(c:\ windows \ myDLL.dllに存在するため、PATHにある)です。Javaスタンドアロンアプリケーションとdllアクセス/更新

"lib"ディレクトリにある独自のdll、つまり新しいバージョンを使用できるようにしたいと考えています。

アイデア?私はdllをスワップすることもできると思っていました(もしアプリケーションがc:\ windowsの古いバージョンを見つけたらそれを上書きすることができます)が、おそらくPATHにdllをロードするアプリケーション自体によってロックされています。

答えて

0

DLLを.warファイル内にデプロイしていることに注意してください。このシナリオでは、アプリケーション起動時に.warファイルから抽出し、どこかに書き込んで、絶対パスをSystem.load()で参照する必要があります。詳細はthis answerを参照してください。

+0

NetBeansを使用して、プロパティ/実行セクションに-Djava.library.pathを定義しましたが、おそらくアプリケーションにその.warファイルを見せる方法がわからないために結果は得られません... – Bya

+0

DLL *をwarファイルにデプロイするには、実行時にそのファイルを展開してどこかに保存しなければなりません(例えば、c:\ temp dir)。 java.library.pathを使用してjarファイル内の*を参照することはできません –

+0

https://stackoverflow.com/a/17745868/12960 –

関連する問題