8

我正在制作一个 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 帮助中设置这两个路径

4

2 回答 2

24

使用System.getenv而不是System.getProperty. 请注意,您还可以通过以下方式获取当前 Java 进程的有效类路径:

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

并且该值可以并且在大多数情况下会与您CLASSPATH设置的环境变量不同。

于 2012-12-20T07:02:59.227 回答
11

因为CLASSPATHandPATH是环境变量,而不是 Java 系统属性。系统属性可以使用-Dkey=value.

尝试使用System.getenv()代替。

于 2012-12-20T07:02:56.150 回答