8

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ヘルプからこれらの両方のパスを設定する必要があります

4

2 に答える 2

24

System.getenvの代わりに使用しSystem.getPropertyます。次のコマンドを使用して、現在の Java プロセスの有効なクラスパスを取得することもできます。

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

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

于 2012-12-20T07:02:59.227 に答える
11

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

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

于 2012-12-20T07:02:56.150 に答える