Создал проект в NetBeans (по книге П.Ноутона, Г. Шилдта "Java2. Наиболее полное руководство").

При создании проекта был создан класс example2.Example2 с папкой проекта D:ExamplesFromBookExample2Example2 (а расположение проекта соответственно D:ExamplesFromBookExample2 ). Создал байт-код с помощью команды в командной строке

в результате чего был создан файл Example2.class .Далее пытался разнообразными способами запустить .class файл из командной строки, среди которых, например, был такой:

в результате чего получил ошибку

Какую команду необходимо использовать и из какой папки запускать?

Для того, чтобы запустить программный код написанный на языке Java, необходимо иметь установленный JDK и нужно записать код с помощью блокнота (или любого другого текстового редактора).

Откройте блокнот или Notepad или любой другой текстовый редактор и наберите следующий код

Сохраните ваш файл под именем Hello.java. Обязательно укажите расширение .java, иначе ничего не получится. Имя файла должно полностью совпадать с именем класса в коде (совпадать должен даже регистр букв).

Перенесите получившийся файл в какую-нибудь папку (например, папку назовите java_prog), находящуюся в корне диска C. Это нужно сугубо для удобства.

Перейдите в эту папку и там у Вас будет один файл Hello.java, если так, то всё прекрасно.

Откроем командную строку Windows. Сейчас у Вас есть два варианта:

  1. Нажмите сочетание клавиш Win+R -> введите «cmd» -> нажмите клавишу Enter -> откроется окно командной строки;
  2. Откройте меню пуск -> введите в поле «Поиск» слово «cmd» -> дождитесь пока Windows найдёт эту программу -> в получившемся списке поиска найдите программу с названием «cmd.exe» или «cmd» (зависит от настроек WIndows) -> кликните на эту программу -> откроется окно командной строки;

После запуска командной строки нужно перейти в нашу папку. Для этого введите в окне командной строки следующую команду

41 Skizz [2011-04-22 18:48:00]

Я скомпилировал программу HelloWorld, и я использую командную строку для ее запуска. Файл .class называется HelloWorld2.class

Файл находится в папке C:UsersMattworkspaceHelloWorld2in Вот что я получаю, когда я иду в командной строке, и набираю "Java HelloWorld2":

Я ожидал увидеть распечатку HelloWorld. Что я делаю не так? У меня установлен JDK.

3 ответа

57 Решение Isaac Truett [2011-04-22 18:51:00]

Вам нужно установить путь к классу, чтобы найти скомпилированный класс:

java -cp C:UsersMattworkspaceHelloWorld2in HelloWorld2

13 kenorb [2015-12-11 01:19:00]

Чтобы запустить файл класса Java из командной строки, синтаксис:

где packageName (обычно начинается с com или org ) – это имя папки, в которой присутствует ваш файл класса.

Например, если ваше основное имя класса – это приложение и имя пакета Java вашего приложения – com.foo.app , то ваш файл класса должен находиться в папке com/foo/app (отдельная папка для каждой точки), поэтому вы запускаете свое приложение как:

Примечание: $ указывает приглашение оболочки, игнорирует его при вводе

Если ваш класс не имеет определенного имени package , просто запустите его как: java App .

Если у вас есть другие зависимости jar, убедитесь, что вы указали свой classpath параметр с помощью -cp / -classpath или с помощью переменной CLASSPATH который указывает на папку с файлами jar/war/ear/zip/class. Итак, на Linux вы можете префикс команды: >, в Windows вам нужно добавить папку в системную переменную. Если не задано, путь к пользовательскому классу состоит из текущего каталога ( . ).

Практический пример

Учитывая, что мы создали образец проекта, используя Maven, как:

и мы скомпилировали наш проект mvn compile в нашем my-app/ dir, он сгенерирует наш файл класса в target/classes/com/foo/app/App.class .

Чтобы запустить его, мы можем либо указать путь класса через -cp , либо перейти к нему напрямую, проверьте примеры ниже:

Чтобы дважды проверить свой класс и имя пакета, вы можете использовать инструмент дизассемблера файла Java, например:

Примечание: javap не будет работать, если скомпилированный файл был запутан.

2 Fido [2011-04-22 19:07:00]

Это может означать много вещей, но наиболее распространенным является то, что класс, содержащийся в файле, не имеет того же имени, что и сам файл. Итак, проверьте, называется ли ваш класс HelloWorld2.