web-dev-qa-db-ja.com

JavaからPATHおよびCLASSPATH環境変数を確認するにはどうすればよいですか?

JMFでaudio.wavファイルを読み取るJavaプログラムを作成しています。このようにコンピューターを再起動するたびに、cmdからパスを設定する必要があります。

    set CLASSPATH=%WINDIR%\Java\classes\jmf.jar;%WINDIR%\Java\classes\sound.jar;.;%CLASSPATH%

そして

    set PATH=%WINDIR%\System32;%PATH%  

そうしないと、プログラムはコンパイルされますが、実行されません。

    System.setProperty(key,value);

Cmdコマンドがわからないので、cmdで設定してからCLASSPATHとPATHの値を確認してみました

    public void checkProperty (){
    System.setProperty("temporaryvar","blahblah");
    System.out.println(""+System.getProperty("temporaryvar"));//prints out blahblah
    System.out.println(""+System.getProperty("CLASSPATH"));//prints out null
    System.out.println(""+System.getProperty("PATH"));//prints out null
    }

私はそれを次のように印刷します

    blahblah
    null
    null

プログラムから設定した変数の値を取得しているのに、cmdから設定した変数の値を取得していない理由は何ですか?これは正しいアプローチですか?Java..plzヘルプからこれらのパスを両方とも設定する必要があります

8
Soul Enrapturer

CLASSPATHPATHは環境変数であるため、Javaシステムプロパティではありません。システムプロパティは、Javaプロセスに渡すことができます。 -Dkey=valueを使用します。

代わりに System.getenv() を使用してみてください。

10
Charlie

使用する System.getenv の代わりに System.getProperty。現在のJavaプロセスの有効なクラスパスを次の方法で取得することもできることに注意してください:

System.getProperty("Java.class.path");

そして、この値は、CLASSPATH環境変数が設定されているものとは異なる可能性があり、ほとんどの場合、異なる可能性があります。

22
Perception