• ベストアンサー

プログラム内でのPath設定

javaのプログラム内でパスを設定することはできますか? public class Test { public static void main(String[] args) { System.setProperty("java.library.path", System.getProperty("java.library.path") + ";C:/library/path"); System.loadLibrary("library"); } } 上のようにすると以下のエラーが出ます。 java.lang.UnsatisfiedLinkError: no library in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517) at java.lang.Runtime.loadLibrary0(Runtime.java:788) at java.lang.System.loadLibrary(System.java:834) at Test.main(Test.java:6) Exception in thread "main" 環境変数「PATH」に C:/library/path を設定すると System.loadlibrary("library") で libraryを読み込むことができます。 なぜ上のやり方では読み込めないか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • foetida
  • ベストアンサー率22% (48/217)
回答No.1

とりあえずSystem.out.plintlnでプロパティを手作業で設定した場合と、プログラムで設定した場合との値が同じがどうかを確認してはいかがでしょうか。

weird
質問者

補足

System.out.plintlnでプロパティを手作業で設定した場合と、プログラムで設定した場合との値が同じかどうかを確認したところ、同じでした。 System.loadLibrary()関数内で参照するpathは、プログラム内で変更できない、つまり、システム環境変数を使用するという理解でよろしいですか?

その他の回答 (1)

  • kacchann
  • ベストアンサー率58% (347/594)
回答No.2

>なぜ上のやり方では読み込めないか >System.loadLibrary()関数内で参照するpathは、プログラム内で変更できない、つまり、システム環境変数を使用するという理解でよろしいですか? いや、実装依存では?

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/System.html#load(java.lang.String)