Проблемы JDK - Невозможно загрузить файлы классов - PullRequest
1 голос
/ 31 марта 2012

Хорошо, так. Я заказал книгу по Java (Самс научил себя Java за 21 день) неделю назад, и она появилась только вчера. Я работаю над первым примером кода и получаю эту ошибку, когда пытаюсь скомпилировать основной код:

C: \ VolcanoApplication.java: 5: ошибка: не удается найти символ

VolcanoRobot dante = новый VolcanoRobot ();

^

символ: класс VolcanoRobot

расположение: класс VolcanoApplication

C: \ VolcanoApplication.java: 5: ошибка: не удается найти символ

VolcanoRobot dante = новый 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. Я объявил переменные path и classpath, и все же это не работает. есть предложения?

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

Лучше всего заставить javac работать из любого каталога, перейдя в переменные среды и изменив PATH, чтобы он включал C:\Program Files\jdk1.7.0_03\bin.

Как только вы это сделаете, в командной строке введите javac где угодно.

Причина, по которой javac не находит файл VolcanoRobot.java, заключается в том, что он не находится в пути, по которому javac ищет исходные файлы. По умолчанию этот путь включает текущий каталог, поэтому, если вы cd перейдете в каталог, содержащий VolcanoApplication.java и VolcanoRobot.java, тогда

javac VolcanoRobot.java VolcanoApplication.java

... должен это сделать. Если это не так, добавьте -cp .:

javac -cp . VolcanoRobot.java VolcanoApplication.java

После этого вы сможете запустить его через

java VolcanoApplication

... или

java -cp . VolcanoApplication

Обновление : так как моя основная рабочая станция основана на Linux, я не делал этого под Windows 7 (раньше все время это делал с Windows XP), и поэтому мне стало интересно, есть ли что-то особенное в этом. Не похоже, что есть. Я установил JDK на свой Windows 7, и у меня не было никаких проблем с его использованием. Вот именно то, что я сделал:

  1. Открыл командную строку, набрал javac и нажал Enter, просто чтобы убедиться, что у меня не установлено ни одного, который я не запомнил. Я получил обычную ошибку «... не распознана как внутренняя или внешняя команда».
  2. Загрузил установщик JDK из Oracle.
  3. Запустил его, позволив установить его в папку по умолчанию.
  4. Открыта панель управления.
  5. Напечатал «environment» в поле поиска (потому что я ленивый и не пытаюсь отследить, куда они перенесли его на этой неделе).
  6. Выберите пункт «Изменить системные переменные среды» и нажмите «Да» на вопросе о разрешениях администратора. Откроется диалоговое окно «Свойства системы» с открытой вкладкой «Дополнительно».
  7. На этой вкладке нажал кнопку «Переменные среды ...».
  8. В поле «Системные переменные» внизу прокрутите вниз до Path.
  9. Выделив это, нажмите кнопку «Редактировать ...», которая открыла окно «Редактировать системную переменную».
  10. В Windows Explorer, перейдите в каталог JDK bin, который был в C:\Program Files\Java\jdk1.7.0_03\bin.
  11. Кликнул в адресной строке, выбрал все и скопировал этот путь в буфер обмена.
  12. Вернувшись в поле «Редактировать системную переменную», я поместил курсор в конец пути, набрал точку с запятой (;) (примечание: не двоеточие и без пробелов вокруг него), а затем вставил путь из буфера обмена.
  13. Нажмите кнопку OK в этом поле, кнопку OK в окне «Переменные среды» и кнопку OK в окне «Свойства системы».
  14. Открыт новый командный запрос.
  15. Набрал javac и нажал Enter. Я получил список помощи javac.
  16. Создал два исходных файла вулкана и поместил их в каталог (в моем случае, C:\tmp\j).
  17. Изменен в этот каталог.
  18. Введенные:

     javac VolcanoRobot.java VolcanoApplication.java
    

    ... и нажал Enter. Я не получил ошибок.

  19. Введенные:

    java VolcanoApplication
    

    ... и нажал Enter. Это работало просто отлично, я получил вывод, который я ожидал от просмотра исходных файлов.

Так что нет проблем с этим в Windows 7. Возможно, то, что я сделал выше, будет вам полезно.

1 голос
/ 31 марта 2012

Если папка C: \ Program Files \ Java \ jdk1.7.0_03 \ bin введена в переменную среды системного пути, вам может потребоваться повторно открыть cmd.exe , так как он не будет загружать эти переменные среды на лету.

Затем вам нужно запустить javac из корня вашего приложения.

...