Первая программа на Java

Давайте сделаем описанные выше шаги — скомпилируем и запустим первую программу на Java. Здесь я предлагаю не обращать внимания на то, что программа делает. Функциональность этой программы достаточно тривиальна — она печатает слова «Hello, world !!!». (Сколько же было за все годы написано таких примеров — и не сосчитать). Но как я уже говорил, на первый раз мы не будем обращать внимание на то, как программа это делает. Сейчас важно научиться делать три шага:

  1. Редактирование кода
  2. Компилирование программы на Java
  3. Запуск программы под управлением JVM

Для редактирования кода можно использовать самый простой редактор — тот же «Блокнот» (Notepad).
Создайте отдельный каталог для наших примеров — предлагаю назвать его JavaLesson. В нашем случае это будет на диске C. Если у Вас будет другой диск — я думаю, что замена C на какую-то другую букву не вызовет больших проблем. Итак, в редакторе набираем следующие строки (как я уже говорил — если вы практически ничего не поймете из того, что здесь написано — не страшно). На первый раз можно просто использовать Copy/Paste.

ВНИМАНИЕ !!! Посмотрите на рисунок, где показано как сохранять файл в Блокноте — там по умолчанию сохраняется текстовый документ. Если вы выберете такой формат, то у вас будет файл First.java.txt.
Вам надо обязательно выбрать пункт «Тип файла: Все файлы». Тогда при сохранении будет правильное расширение

 

Из всего кода я предлагаю обратить внимание только на строку:

Эта команда выводит на экран строку в кавычках — в данном случае это «Hello, world !!!».
Запишем наш файл под именем First.java. Обратите внимание на регистр букв — это очень важно. На первое время запомните, что Java различает строчные и прописные буквы. Итак, у нас есть файл First.java в каталоге C:\JavaLesson.
Компилятор javac.exe и JVM java.exe представляют собой программы, которые выполняются из командной строки. Поэтому нам потребуется запустить командную строку. Обычно ее можно запустить из меню «Пуск->Стандартные->Командная строка». При запуске мы получим нечто подобное:

 

Наберите команду cd C:\JavaLesson. И вы очутитесь в нужном каталоге. Теперь выполните команду dir. Если вы сохранили файл First.java в каталоге C:\JavaLesson, то вы дожны увидеть следующую картинку

Первый шаг мы прошли. Теперь перейдем ко второму — компиляция. Для этого выполним команду

Если вы все правильно скопировали (или переписали), то при компиляции у Вас не должно быть никаких сообщений. Компилятор javac достаточно молчалив — хотя есть возможность попросить его быть более разговорчивым. Для этого можно запускать его с ключом verbose. В таком виде:

 

После этого можем посмотреть содержимое каталога. Результат исполнения должен выглядеть подобно тому, что изображено на рисунке.

Шаг компиляции мы выполнили, теперь перейдем к заключительному шагу — запуску. Для этого надо выполнить следующую команду:

Результат можно видеть на рисунке

Возможно выполнение и более простой команды.

Но в некоторых случаях это может не сработать. Этот вопрос мы отложим на более позднее время. Первый вариант практически всегда срабатывает. Так что будем пользоваться им.

Итак, мы с вами сделали все необходимые шаги. Для нас это важное достижение. Теперь вы знаете, как создавать, компилировать и запускать программы на Java. С накоплением опыта мы рассмотрим более подробно компиляцию и запуск. Попробуйте сделать все шаги несколько раз, чтобы закрепить успех. Вам они потребуются для дальнейшего изучения.

Интегрированные среды разработки

Профессиональные программисты в подавляющем большинстве случаев используют специальные программы, которые позволяют упростить все шаги — получить «все в одном». Такие программы называются IDE — Integrated Development Environment. Несколько позже мы начнем использовать одну из них. Но пока будем пользоваться простыми средствами. Я считаю крайне важным фактом умение программиста пользоваться простыми средствами и понимать суть происходящего, которое часто скрывают всякие навороченные системы. Так что не обижайтесь, но первое время мы будем с вами пользоватья простым приложением «Блокнот» и командной строкой.
Теперь мы можем перейти непосредственно к изучению языка Java. А начнем мы с понимания данных. Переходим к части Данные

57 comments to Основные шаги

  • Aleks  says:

    спасибо за объяснения:)

    • admin  says:

      И Вам спасибо за отзыв. Удачи.

  • Anton  says:

    Здравствуйте.команда javac First.java, выдает»javac»не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Что неправильно? Что делать подскажите пожалуйста.

    • admin  says:

      Вы не прописали в переменной PATH путь до файла javac.exe — посмотрите в разделе «Установка JDK» — http://java-course.ru/begin/install-jdk/

  • Komarov  says:

    Здравствуйте!Помогите пожалуйста!Пытаюсь компилировать программу уже несколько дней.Посмотрел кучу инструкций и видео,переустанавливал JDK,проверял путь,все равно при компиляции возникает ошибка ниже.Если не сложно подскажите что надо делать.Заранее спасибо.

    C:\Lessons>javac first.java
    first.java:1: error: class First is public, should be declared in a file named F
    irst.java
    public class First
    ^
    1 error

    • admin  says:

      Java различает большие и маленькие буквы. У Вас файл начинается с маленькой буквы, а имя класса — с большой. Вот и ошибка.

  • Komarov  says:

    Галочка сдвинулась.Должна быть под буквой «с» в слове «class»

  • Гарик  says:

    у меня не открывается First.java что мне делать?

    • admin  says:

      Не понял вопроса — что значит «не открывается» ? Этот файл надо самому создать.

  • Гарик  says:

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

    • admin  says:

      Понятно — у вас не настроена ассоциация Блокнота с расширением .java. А Вы просто жмете Enter (или дабл-кликаете) на этом файле.
      Самое простое — запустить Блокнот и уже в нем открывать файл. Только надо указать, что все типы смотреть.

      Если находитесь в командной строке в каталоге с файлом First.java, то можно запустить такую команду

      notepad First.java

  • Ania  says:

    Здравствуйте! Возникла проблема с компиляцией. Выдаёт ошибку. В чём может быть проблема?
    C:\Practice>javac HelloWorld.java
    HelloWorld.java:1: error: class, interface, or enum expected

    • admin  says:

      Вряд ли Вас устроит ответ «Видимо у вас есть ошибка». Код свое программы напишите — я же не экстрасенс.

    • admin  says:

      Скорее всего у вас нет слова class.
      Должно быть так

      public class HelloWorld

  • Stan  says:

    Здравствуйте! У меня похожая проблема с путями. В командной строке пишу
    — javac Hello.java
    — компилируется, в этом же каталоге создается байт-код Hello.class
    — Error: Could not find or load main class Hello
    При этом
    Системная переменная JAVA_HOME со значением C:\Program Files\Java\jdk1.8.0_51\bin
    Системная переменная Path со значением C:\Program Files\Java\jdk1.8.0_51\bin
    Затем создал Переменную среды CLASSPATH со значением .
    перегрузился… , а воз и ныне там… помогите пожалуйста!

  • Stan  says:

    – Error: Could not find or load main class Hello выдаёт после попытки запуска т.е.
    java Hello или java -cp . Hello

    • admin  says:

      1. Проверьте, что есть класс Hello (файл Hello.java) и в нем есть метод main (точно такой, как указан)
      public static void main(String[] args) {
      System.out.println(«Hello, world!»);
      }
      В статье говорится о файле First.java и внутри описан public class First. Почему у вас Hello ?

      2. Запускаете команду в каталоге, где находится Hello.class ? Файл Hello.class там есть ?

      3. Проверьте наличие пробелов между всеми словами и символами
      java -cp . Hello
      Т.е.
      java[пробел]-cp[пробел].[пробел]Hello

  • Stan  says:

    Все проверил. Название файла Hello.java В Eclipse он запускается без проблем. Из командной строки компилится в Hello.class ,
    но дальше… все эти команды:
    java -cp . Hello (запускаю в текущей директории, где сам java и в т.ч. Hello.class) результат Error: Could not find or load main class Hello
    java -classpath E:\Workspace\Projects\src\packfirst Hello (результат тот же)

    public class Hello {
    public static void main(String[] args) {
    System.out.println(«Hello WORLD!»);
    }
    }
    Я нашел у себя ошибку, только что в JAVA_HOME убрал в конце пути \bin
    перегрузился, … но это увы, не помогло

    • admin  says:

      Вы полностью мне файл привели ? Или там еще package наверху есть ? Попробуйте сделать, как указано в статье — от начал и до конца.
      Потому что раз уже Eclipse установлен и под ним все запускается, то там все может быть гораздо сложнее, чем Вы описываете.
      А разбираться в чужой машине с чужим софтом через сообщения — это бесполезная трата времени.

  • Stan  says:

    java-cp.Hello результат тот же

    • admin  says:

      Это я неудачно сформатировал — все должно разделяться пробелами
      java[пробел]-cp[пробел].[пробел]Hello

  • admin  says:

    Ну это не форум 🙂 Я иногда захожу и отвечаю по мере сил, но не постоянно.

  • Гарик  says:

    в LoopForFive прога печатает не треугольник а строку

    • admin  says:

      Во-первых — комментарий не к той статье. Во-вторых — печатает треугольник. Только что проверял.

  • Гарик  says:

    вы в той статье не ответили вот и я решил тут спросить, а во вторых не знаю почему но у меня строку печатает))

  • Виктор  says:

    Спасибо уважаемый)

  • юра  says:

    Помогите пожалуста, скажите куда вводить команду «javac *.java» я зделал как показано више но не получаетса скомпилировать.(Извините за ошибки я из Украини 14лет)

    • admin  says:

      Мне сложно написать это как-то иначе — в статье все написано. Лучше делаем так — ты пробуешь что-то сделать и потом (если не получается) пишешь, что ты делал и что получил (даже если ошибки — надо написать какие).

  • юра  says:

    Можете скинуть свою почту или id от страници в вк(Помогите начинающему програмисту:)

  • Артур  says:

    по моему я нашёл то что искал… всегда считал изьяном всех «методистов-компьютерщиков» это невнятное изложение, тупые аналогии и пропасть между теорией и практикой… А ВОТ ВЫ МОЛОДЦЫ!!!

  • олег  says:

    Здравствуйте! возникла проблема с запуском. После ввода java -cp . First вылетает — не удаётся найти файл C:\ProgramData\Oracle\Java\javapath\java.exe. объясните пожалуйста, какова причина данной проблемы?

    • admin  says:

      Вы из какого каталога запускаете java ? Как я понимаю, Вы это делаете из командной строки. Так вот в приглашении обычно показывается текущий каталог. Он какой ?

  • Maxim  says:

    Спасибо за объяснения, все понятно и доступно 🙂 Перехожу к следующему уроку)

  • Иаан  says:

    Здравствуйте, у меня есть программа на выходе которой я получаю файл с java кодом. Подскажите пожалуйста, как мне вызвать и выполнить этот файл не через командную строку, а через другой код «дополнительно передав на вход текстовый параметр».

    • admin  says:

      Если надо запустить какую-то программу (в том числе и java), то используется либо Runtime.getRuntime().exec — пример можно найти в интернете. Либо ProcessBuilder — также можно найти в интернете. Параметры там можно передать.
      Второй вариант — загрузить класс в рантайме и просто исполнить нужный метод через рефлекшн.

      Или надо еще и скомпилировать исходники ?

      • Иаан  says:

        вот дословно задание: «только мы не ожидаем, что он будет использоваться только из командной строки, его можно подключить к любому коду, передав на вход XML
        т..е это должен быть исходный код класса или классов, где есть точка входа — класс, реализующий интерфейс, который будет создан заранее»… не могу понять как это реализовать

        • admin  says:

          Не выглядит это на дословно. Вот вариант, но насколько он отражает то, что надо делать -не знаю.

          Это интерфейс

          А это код, который принимает в качестве строки код и записывает его в файл (он по заданию уже есть — мне просто лениво еще и его было писать)

  • Иаан  says:

    Спасибо большое! Буду отталкиваться от вашего варианта. Еще раз спасибо )

  • Roma  says:

    Здравствуйте Админ! Выручайте пожалуйста… Когда делаю заключительный шаг — запуск и выполняю команду «java -cp . First», то выдает ошибку: Exception in thread «main» java.lang.UnsupportedClassVersionError: First: Unsupported major.minor version 52.0…

    • admin  says:

      Скорее всего у Вас установлено несколько версий Java и в путь попадает не та версия, которая используется для компиляции — попробуйте прописать честно путь до java.exe из JDK. Что-то вроде такого

      C:\Java\jdk1.8.0_65\bin\java.exe -cp . First

      • Roma  says:

        Спасибо большое! Действительно, так и было. Стояло еще одна старая версия…

  • Вадим  says:

    Приветствую! Почему у вас в этой строке «arg», а не как обычно «args» ? Спасибо!

    public static void main(String[] arg) {

    • admin  says:

      Имя аргумента в принципе не важно — важен только тип. Поэтому можно agrs, можно arg, можно еще как-нибудь.

  • Роман  says:

    Не удается найти файл C:\ProgramData\Oracle\Java\javapath\java.exe.

    Выдаётся такая ошибка после команды java -cp . First
    изначально в path добавил C:\Program Files\Java\jdk8\bin

    • admin  says:

      Я не могу с уверенностью сказать в ем причина — возможно в реестре прописан такой путь.

  • Дмитрий  says:

    Спасибо. Пока все понятно. Все очень доходчиво объясняете.

  • Денис  says:

    Здрасти. Вопрос — это у вас в простом блокноте печатает так красиво и разноцветно, и с нумерацией строк? А то у меня усё чёрно-бело и просто)

    • admin  says:

      Да, там все черно-белое и все просто. Только на страничке это так красиво выглядит — специальный CSS настроен.

  • Денис  says:

    Поняв, спасибо)

  • Олег  says:

    Сделал Ваш урок «Hello, world !!!»-всё получается только если мои файлы находятся в директории «C:\Program Files\Java\jdk1.8.0_112\bin» (там, где установлен JDK). У меня Win7(x64). После установки JDK переменная Path в оригинале- «C:\ProgramData\Oracle\Java\javapath» (там только три файла: java.exe javaw.exe javaws.exe.). Попробовал урок- в других директориях не получается. Изменил Path на- «C:\Program Files\Java\jdk1.8.0_112\bin», добавил переменную JAVA_HOME, так как Вы пишете- снова в других директориях не получается. Подскажите, что это может значить?

  • Олег  says:

    Извините, виноват, нужно перезагружать комп в любом варианте.

    • admin  says:

      В принципе странно, что файлов было так мало. Там их гораздо больше — несколько десятков.

  • Олег  says:

    Они все скорее всего в «C:\Program Files\Java\jdk1.8.0_112\bin» (там, где установлен JDK), в т.ч. и эти трое. По крайней мере, пока всё работает.

  • Antofagasto  says:

    Добрый вечер, у меня строка PATH имеет вот такой вид:
    C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Skype\Phone\;C:\Program Files\Bitvise SSH Client
    JDK установлено в C:\Java\jdk1.8.0_121
    строка PATH должна выглядеть так:
    C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Skype\Phone\;C:\Program Files\Bitvise SSH Client;C:\Java\jdk1.8.0_121\bin ?
    First.java лежит в папке: C:\javalesson
    но при вводе этого пути в командную строку пишет:
    C:\javalesson не является внутренней или внешней командой исполняемый программой или пакетным файлом.
    В переменной JAVA_HOME указан путь: C:\Java\jdk1.8.0_121\
    Где я допустил ошибку?)

  • Antofagasto  says:

    разобрался, спасибо)

  • Сергей  says:

    При javac First.java выдаёт:
    First.java:3: error: illegal character: ‘\u00a0’
    ааааpublic static void main(String[] arg) {
    ^
    First.java:3: error: illegal character: ‘\u00a0’
    ааааpublic static void main(String[] arg) {
    ^
    First.java:3: error: illegal character: ‘\u00a0’
    ааааpublic static void main(String[] arg) {
    ^
    First.java:3: error: illegal character: ‘\u00a0’
    ааааpublic static void main(String[] arg) {
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: illegal character: ‘\u00a0’
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:4: error: ‘;’ expected
    ааааааааSystem.out.println(«Hello, world !!!»);
    ^
    First.java:5: error: illegal character: ‘\u00a0’
    аааа}
    ^
    First.java:5: error: illegal character: ‘\u00a0’
    аааа}
    ^
    First.java:5: error: illegal character: ‘\u00a0’
    аааа}
    ^
    First.java:5: error: illegal character: ‘\u00a0’
    аааа}
    ^
    First.java:5: error: ‘;’ expected
    аааа}
    ^
    First.java:6: error: reached end of file while parsing
    }
    ^
    19 errors

  • Сергей  says:

    Уже разобрался))) Не знаю, в чём была проблема, просто вот это:
    public class First
    {
        public static void main(String[] arg) {
            System.out.println(«Hello, world !!!»);
        }
    }
    Привёл к этому:
    public class First
    {public static void main(String[] arg)
    {System.out.println(«Hello, world !!!»);}}
    Иными словами удалил пробелы. Кто знает, что было не так, напишите пожалуйста)

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.