PyDev Jython プロジェクトでコンパイル済みの .jar Java ライブラリを使用しようとしています。
.jar を PYTHONPATH に正常に追加し、オートコンプリートでコーディングを開始できました。
ライブラリには .dll 拡張子も必要なjavaHeclib.dll
ので、それをプロジェクトの外部ライブラリ セクションに追加しました。
ライブラリを正常にインポートできますが、その関数のいずれかにアクセスしようとするとエラーが発生します。
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
VM 引数を実行構成に追加しましたが、うまくいきませんでした。
-Djava.library.path="Y:/path/to/javaHeclib.dll;${env_var:PATH}"
上記を使用して、コマンドラインからライブラリを問題なく実行できますjava.library.path
。
PyDev コンソールで実験を行ったところ、相対パスではなく絶対パスで .dll 拡張子をロードできることに気付きました。
>>> import java.lang
>>> java.lang.System.load('Y:/path/to/javaHeclib.dll')
>>> java.lang.System.loadLibrary('javaHeclib')
Traceback (most recent call last):
File "<console>", line 1, in ?
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
残念ながら、ライブラリはSystem.loadLibrary
上記の呼び出しを使用しており、そのソースにアクセスできません。
なぜ私の中にjavaHeclib.dll
ないのjava.library.path
ですか?
編集
を dll を含むディレクトリに設定しjava.library.path
ても、.dll を使用してロードできませんでしたSystem.loadLibrary
。
-Djava.library.path="Y:/path/to/dll/;${env_var:PATH}"
(スラッシュを使用しても違いはありませんでした。) でデフォルトの VM 引数を変更しようとしましたがeclipse.ini
、うまくいきませんでした:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"