JDK问题 - 无法加载类文件

时间:2012-03-31 14:43:35

标签: windows-xp java command-prompt .class-file

好的,好的。我在一周前订购了一本关于Java的书(Sams在21天内自学了java),它就在昨天发布。我正在研究第一个示例代码,当我尝试编译主代码时,我不断收到此错误:

  

C:\ VolcanoApplication.java:5:错误:找不到符号

     

VolcanoRobot dante = new VolcanoRobot();

     

^

     

符号:类VolcanoRobot

     

位置:类VolcanoApplication

     

C:\ VolcanoApplication.java:5:错误:找不到符号

     

VolcanoRobot dante = new VolcanoRobot();

                     ^
     

符号:类VolcanoRobot

     

位置:类VolcanoApplication

我试图编译的主要代码是:

public class VolcanoApplication
{
    public static void main(String[] arguments)
    {
        VolcanoRobot dante = new VolcanoRobot();
        dante.status = "exploring";
        dante.speed = 2;
        dante.temperature = 510;

        dante.showAttributes();
        System.out.println("Increasting speed to 3.");
        dante.speed = 3;
        dante.showAttributes();
        System.out.println("Changing temperature to 670.");
        dante.temperature = 670;
        dante.showAttributes();
        System.out.println("Checking the temperature.");
        dante.checkTemperature();
        dante.showAttributes();
    }
}

和VolcanoRobot.java文件:

public class VolcanoRobot
{
    String status;
    int speed;
    float temperature;

    void checkTemperature()
    {
        if(temperature > 660)
        {
            status = "returning home";
            speed = 5;
        }
    }

    void showAttributes()
    {
        System.out.println("Status: " + status);
        System.out.println("Speed: " + speed);
        System.out.println("Temperature: " + temperature);
    }
}

我无法让javac在命令提示符下运行(我正在运行xp)所以我导航到我的javac.exe所在的位置(C:\ Program Files \ Java \ jdk1.7.0_03 \ bin)并编译VolcanoApplication从那里开始(VolcanoApplication在C:的根目录中找到)

当我在任何地方输入Java时,我会得到菜单,但不是javac。我声明了路径和类路径变量,但它不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您最好的选择是通过进入环境变量并更改javac来使PATH在任何目录中发挥作用,使其包括C:\Program Files\jdk1.7.0_03\bin

完成后,在命令提示符下键入javac应该可以正常工作。

javac找不到VolcanoRobot.java文件的原因是它不在javac搜索源文件的路径中。默认情况下,该路径包含当前目录,因此如果您cd到包含VolcanoApplication.javaVolcanoRobot.java的目录,那么

javac VolcanoRobot.java VolcanoApplication.java

......应该这样做。如果没有,请添加-cp .

javac -cp . VolcanoRobot.java VolcanoApplication.java

然后您应该可以通过

运行它
java VolcanoApplication

...或

java -cp . VolcanoApplication

更新:由于我的主工作站是基于Linux的,我没有在Windows 7下完成此操作(过去常常使用Windows XP),所以我想知道是否存在这件事很特别。看起来不像。我在我的Windows 7机器上安装了JDK,并且使用它没有任何问题。这正是我所做的:

  1. 打开命令提示符并键入javac并按Enter键,以确保我没有安装一个我不记得了。我得到了通常的“......不被认为是内部或外部命令”错误。
  2. 从Oracle下载JDK安装程序。
  3. 跑吧,让它安装到默认位置。
  4. 打开控制面板。
  5. 在搜索框中键入“environ”(因为我很懒,并且懒得跟踪他们本周将它移动到哪里)。
  6. 单击“编辑系统环境变量”选项,然后在管理员权限弹出问题上单击“是”。这将打开“系统属性”对话框,并打开“高级”选项卡。
  7. 点击该标签上的“环境变量...”按钮。
  8. 在底部的“系统变量”框中,向下滚动到Path
  9. 突出显示,点击“编辑...”按钮,打开“编辑系统变量”框。
  10. 在Windows资源管理器中,导航到JDK的bin目录,该目录位于C:\Program Files\Java\jdk1.7.0_03\bin
  11. 在地址栏中单击,全选,然后将该路径复制到剪贴板。
  12. 回到“编辑系统变量”框中,我将光标放在路径的末尾,键入一个分号(;)(注意:不是冒号,并且周围没有空格),并且然后从剪贴板粘贴路径。
  13. 单击该框上的“确定”按钮,单击“环境变量”框中的“确定”按钮,然后单击“系统属性”框中的“确定”按钮。
  14. 打开一个新的命令提示符。
  15. 键入javac并按Enter键。我收到了javac帮助列表。
  16. 创建了两个火山源文件并将它们放在一个目录中(在我的例子中,C:\tmp\j)。
  17. 已更改为该目录。
  18. 类型的:

     javac VolcanoRobot.java VolcanoApplication.java
    

    ...然后按Enter键。我没有错。

  19. 类型的:

    java VolcanoApplication
    

    ...然后按Enter键。它工作得很好,我得到了我期望从源文件中看到的输出。

  20. 所以在Windows 7上执行此操作没有问题。也许我上面所做的将对您有所帮助。

答案 1 :(得分:1)

如果 C:\ Program Files \ Java \ jdk1.7.0_03 \ bin 文件夹输入到系统路径环境变量中,则可能需要重新打开 cmd.exe ,因为它不会动态加载这些环境变量。

然后,您需要从应用程序的根目录运行javac。