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ヘルプからこれらのパスを両方とも設定する必要があります
CLASSPATH
とPATH
は環境変数であるため、Javaシステムプロパティではありません。システムプロパティは、Javaプロセスに渡すことができます。 -Dkey=value
を使用します。
代わりに System.getenv() を使用してみてください。
使用する System.getenv
の代わりに System.getProperty
。現在のJavaプロセスの有効なクラスパスを次の方法で取得することもできることに注意してください:
System.getProperty("Java.class.path");
そして、この値は、CLASSPATH
環境変数が設定されているものとは異なる可能性があり、ほとんどの場合、異なる可能性があります。