我正在创建一个java程序来读取带有JMF的audio.wav文件。每次我的计算机重新启动时都必须从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帮助中设置这两个路径
答案 0 :(得分:22)
使用System.getenv
代替System.getProperty
。请注意,您还可以使用以下命令获取当前Java进程的有效类路径:
System.getProperty("java.class.path");
并且这个值可以(在大多数情况下)与您设置的CLASSPATH
环境变量不同。
答案 1 :(得分:10)
因为CLASSPATH
和PATH
是环境变量,而不是Java系统属性。系统属性可以使用-Dkey=value
传递给您的java进程。
请尝试使用System.getenv()。