• ベストアンサー

javaの中で環境変数を設定する。

javaの記述内で環境変数を設定する事は出来るのでしょうか? osはredhat linuxです。 具体的にはJAVAからCのモジュールをSystem.loadLibraryで 読み込んでいますが、環境変数LD_LIBRARY_PATHから探しに行くと思います。 このCのモジュールのパスを外部ファイルに持たせ、変更できるようにしたいのです。 何か良い方法がありますでしょうか? 以上、宜しくお願いします。

  • Java
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

質問は環境変数を設定することですか?それともモジュールのパスが指定出来ればいいだけですか? 前者ならばNo.1さんが書いているとおり基本的に無理です。 後者ならSystem#load()を使ってフルパス指定でモジュールを読み込ませることができます。

take_july
質問者

お礼

ありがとうございます。 スッキリしました。

その他の回答 (1)

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

loadLibraryの挙動は完全にプラットフォームに依存するので、Java側からライブラリのロードに関する挙動を変えることはできません。 また、Javaからシステム環境変数の操作をすることもできません。 Javaを実行する前に必要な環境変数をセットするシェルスクリプトを作れば良いでしょう。

take_july
質問者

お礼

ありがとうございます。 スッキリしました。

関連するQ&A

  • プログラム内での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を読み込むことができます。 なぜ上のやり方では読み込めないか教えてください。

    • ベストアンサー
    • Java
  • 環境変数の設定

    PerlでCGIを書いています。 環境変数LD_LIBRALY_PATHを設定するのに、 Perlのスクリプト内で、$ENV{LD_LIBRARY_PATH}に値を代入しているのですが、もっとスマートな環境変数の設定法はありませんでしょうか。 残念ながら、httpd.confを書き換える権限は持っていません。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • javaの環境変数設定について

    環境変数の設定で別バージョンのJavaが設定されます。 システムの環境変数にPathがあるので、 最後にC:\j2sdk1.4.2_18\bin;と設定したのですが、 この際、システムのプロパティーの適用がグレー表示です。 古いバージョンの1.6.0_07の設定を削除するにもPathのどこにあるのかわかりません。 プログラムファイルのJavaフォルダー内に新しいのとire1.6.0_07フォルダーがあります。 このフォルダーを削除しても新しいのが設定されません。

    • ベストアンサー
    • Java
  • Javaの環境変数設定について。

    はじめまして。OSはWindowsXPでJavaの勉強をしようと思い、「JDK 5.0 Update 16」をインストールし、環境変数の設定を行ったのですが、PATHにもともと環境変数があったのに、間違えて新しい環境変数に変更してしまいました。コマンドプロンプトで「jsvac」コマンドを打ち込んだら C:\Documents and Settings\takumi>javac 'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ました。 環境変数を元に戻す方法はないのでしょうか? どなたかご教授お願いします。

    • ベストアンサー
    • Java
  • javaの環境変数PATHについてご教授ください。

    javaの環境変数PATHについてご教授ください。 現状、"c:\"でjavacコマンドを入力すると、「内部コマンドまたは外部コマンド~」 と警告が表示されます。 環境変数については、 ・ユーザ環境変数にJAVA_HOMEを定義し、「C:\Program Files\Java\jdk1.6.0_20」を設定しています。 ・システム環境変数のPATHに、「%JAVA_HOME%\bin;%SystemRoot%;%SystemRoot%\System32;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\」を設定しております。 OSは、vistaです。 【補足】 ・C:\Program Files\Java\jdk1.6.0_20\binにディレクトリチェンジした場合、javacは実行できる。javac.exeはあります。

    • ベストアンサー
    • Java
  • 環境変数の設定について

    javaの開発環境を設定する際、PATH環境変数の設定を行うよう多数のサイトで拝見しましたが、これにはどんな意味があるのでしょうか? ちなみに私はPATHの環境変数の設定を行わずに、以下の環境の下で簡易プログラムを実行したところ、正確な出力結果を得られました。 開発環境…eclipse javaプラットホーム…JDK 6 Update 18 環境変数を設定しなくとも正常にプログラムを行うことができると思うのですが、環境変数の設定によって何がどう変わるのか具体的に詳しく教えていただけると助かります。 どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • Javaの環境変数の設定について

     環境変数の設定をしたのですがコンパイルなどができません。なんででしょうか?  環境変数はPathのところに;C:\j2sdk_1.4.2_11\binと入力しています。

    • ベストアンサー
    • Java
  • 環境変数って何ですか?

    Javaで環境変数でPATHを追加しますが、 これを設定するとJavacでコンパイルできる事は分かります。 ですが、どういったシステムになっているのでしょうか? Win98の「Autoexec.bat」にPATHを追加するのと、Win2000の環境変数でPATHを追加する場合で教えて頂けないでしょうか。

    • ベストアンサー
    • Java
  • 同時に環境変数を変えることはできるのでしょうか・

    javaのプログラミングの勉強をしていて、ついでにC言語の勉強をはじめようと思ったのですが、環境変数のところでいきなりつまずいています。 javaの環境変数はきちんと設定されているのですが 新しくC言語の環境変数を通すと、以前のjavaで設定 した環境変数を消すことになってしまいます。 javaとc言語のpathの環境変数を同時に設定したまま 残すことはできないのでしょうか? どなたかお願いします!!

  • javaのpath環境変数がうまくできません

    path環境変数がなかなか設定できません。 『システム変数の編集』で どうも設定を間違っているらしく、 C:\j2re1.4.2\binを追加するのに 前にあったはずの、C:\WINDOWS~~~ を削除してしまって、なんて入れれば環境変数が うまくできるかわからなくなってしまいました。 誰かお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう