Перейти к содержимому

Как запустить java файл через командную строку

  • автор:

Компиляция и запуск приложения из командной строки

Для компиляции программ из командной строки (консоли) используется команда javac.

javac [ключи] [исходники]

Чтобы получить список возможных ключей, выполните:

javac –help

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

javac MyFirstApp.java

Компилятор javac создаст файл MyFirstApp.class , содержащий версию байт-кода.

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

2. Компиляция с помощью -d.

По умолчанию компилятор записывает сгенерированный .class в тот же каталог, где находится исходный класс .java . Это хорошо для маленьких проектов, но при работе на больших проектах файлы .java и .class должны храниться отдельно.

Ключ -d позволяет указать компилятору, куда записывать сгенерированные .class файлы.

Например, у нас есть такая структура папок:

Структура папок фото

Следующая команда, выполненная из project1 папки сгенерирует файл MyFirstApp.class и запишет его в папку classes (предполагаем, что MyFirstApp не содержит оператора package ):

cd project1 javac -d classes src/MyFirstApp.java 

Теперь давайте рассмотрим пример компиляции класса com.company.lesson1.MyFirstApp , находящегося в пакете com.company.lesson1 . Имеется такая структура каталогов:

Структура папок фото

Следующая команда, выполненная из src каталога, сгенерирует файл MyFirstApp.class , и запишет его в каталог classes/com/company/lesson1:

cd myProject/src javac -d ../classes com/company/lesson1/MyFirstApp.java

Если каталог classes/com/company/lesson1 не существует, то он будет создан при компиляции.

Если же не существует каталог classes, то вы получите ошибку компиляции.

3. Запуск программы с помощью команды java.

Чтобы выполнить программу из командной строки, следует воспользоваться загрузчиком приложений Jаvа, который называется java.

java [ключи] класс [аргументы]

Для получения списка возможных ключей, выполните:

java –help

Чтобы выполнить программу, передадим имя класса MyFirstApp (предполагаем, что MyFirstApp не содержит оператора package ) в качестве аргумента командной строки:

java MyFirstApp

Если класс MyFirstApp находится в пакете, то выполняем команду:

java com.company.lesson1.MyFirstApp

Стоит заметить, что при запуске программы указывается только один класс без расширения .class .

4. Ключевые моменты

  1. В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class .
  2. По умолчанию компилятор записывает сгенерированный .class в тот же каталог, где находится исходный класс .java .
  3. Ключ -d указывает компилятору, куда записывать сгенерированные .class файлы.
  4. При компиляции могут быть созданы отсутствующие каталоги соответствующие пакету компилируемого класса.
  5. Если в ключе -d указан не существующий каталог, будет выброшена ошибка компиляции.
  6. При запуске программы указывается только один класс без расширения .class .
  7. -d может содержать относительные и абсолютные пути.

Презентацию с видео можно скачать на Patreon .

Как запустить класс в java

Для запуска класса в Java , необходимо выполнить следующие шаги:

  • Создайте файл с именем MyClass.java и добавьте в него код:
public class MyClass  public static void main(String[] args)  System.out.println("Hello, world!"); > > 
  • Откройте командную строку или терминал в вашей IDE.
  • Перейдите в папку, где находится файл MyClass.java
  • Выполните команду javac MyClass.java , чтобы скомпилировать файл MyClass.java в файл MyClass.class . При успешной компиляции не должно появиться никаких ошибок.
  • Выполните команду java MyClass , чтобы запустить класс MyClass . Если все прошло успешно, вы увидите вывод «Hello, world!»

Обратите внимание, что при запуске класса в Java необходимо указывать имя класса без расширения файла ( .class ). Кроме того, перед запуском класса необходимо убедиться, что файл с классом был успешно скомпилирован и находится в той же папке, что и файл с исходным кодом.

Java/Запуск программы

Загрузка и установка пакета SDK или пакета JDK [ править ]

1. Загрузите нужную версию JDK компании Oracle Corporation (ранее Sun Microsystems) или последнюю версию SDK («Набор программиста») компании Sun Microsystems.
2. Установите её, следуя указаниям.

Подготовка пакета SDK или пакета JDK к работе [ править ]

Открытие окна системного ввода-вывода [ править ]

3. Теперь откройте окно «Командная строка» или окно «C:\windows\system32\cmd.exe«.
3.1. Открытие окна «Командная строка«:
3.1.1. Кликните левой кнопкой мыши на кнопке «Пуск»
3.1.2. В открывшемся меню первого уровня выберите строку «Все программы»
3.1.3. В открывшемся меню второго уровня выберите строку «Стандартные»
3.1.4. В открывшемся меню третьего уровня выберите строку «Командная строка» и кликните на ней левой кнопкой мыши, откроется окно «Командная строка» системного вывода-ввода с сообщениями:

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>_

, где «2» — имя пользователя.
3.2. Открытие окна «C:\windows\system32\cmd.exe«:
3.2.1. Открытие окна «C:\windows\system32\cmd.exe«. Способ 1.:
3.2.1.1. Кликните левой кнопкой мыши на кнопке «Пуск«, откроется окно «Запуск программы»
3.2.1.2. В открывшемся меню первого уровня выберите строку «Выполнить» и кликните на ней левой кнопкой мыши, откроется окно «Запуск программы»
3.2.1.3. В окне «Запуск программы«, в строке «Открыть:» введите cmd, откроется окно «C:\windows\system32\cmd.exe» системного вывода-ввода с сообщениями:

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>_

3.2.2. Открытие окна «C:\windows\system32\cmd.exe«. Способ 2.:
3.2.2.1. Нажмите одновременно две кнопки Win+R, откроется окно «Запуск программы»
3.2.2.2. В окне «Запуск программы«, в строке «Открыть:» введите cmd, откроется окно «C:\windows\system32\cmd.exe» системного вывода-ввода с сообщениями:

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>_

Указание пути к папке bin [ править ]

4. Для удобства пропишите в path путь к папке bin пакета SDK или JDK, для этого введите системную команду с указанием пути к папке bin, например:
path c:\Program Files\Java\jdk1.7.0\bin

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>_

Вход в папку с исходным Java-кодом [ править ]

5. Зайдите в папку с исходными кодами, для этого введите системную команду перехода к другому подкаталогу CD с указанием пути к подкаталогу с файлом исходного кода, например:
cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>_

Компиляция исходного Java-кода в байт-код [ править ]

6. Компилируйте файлы *.java, получая *.class. Например: javac MyTest.java или javac HelloWorld.java

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>javac HelloWorld.java

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>_

Запуск байт-кода [ править ]

7. Запустите класс, где есть функция public static void main(…) . Например: java -cp . MyTest или java HelloWorld

Microsoft Windows XP [Версия 5.1.2600]
(C) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\2>path c:\Program Files\Java\jdk1.7.0\bin

C:\Documents and Settings\2>cd c:\Documents and Settings\2\Мои документы\Java\HelloWorld

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>javac HelloWorld.java

C:\Documents and Settings\2\Мои документы\Java\HelloWorld>java HelloWorld
HelloWorld!

C:\Documents and Settings\2\Мои документы\Java\JavaShildt\HelloWorld>_

Запуск апплета в appletviewer’е [ править ]

Для запуска апплета в appletviewer’е с помощью команды cd войдите в подкаталог (папку) в которой находятся файл запуска апплета в браузере *.html и файл апплета *.class, например, для апплета с именем Sample: Sample.html и Sample.class, и запустите аплетвьювер командой:

C:\Documents and Settings\2\Мои документы\Java\JavaShildt\HelloWorld>cd C:\Documents and Settings\2\Мои документы\Java\JavaShildt\643Sample
C:\Documents and Settings\2\Мои документы\Java\JavaShildt\643Sample>appletviewer Sample.html_

Компиляция и запуск Java без IDE

Java-университет

Компиляция и запуск Java без IDE - 1

В свое время на reddit.com, в теме Компиляция и запуск Java без IDE, был задан вопрос: Является ли команда, которая компилирует группу файлов Java, которые находятся внутри пакета в отдельную папку (назовем ее bin), и как бы я идти о запуске новых файлов класса? » Автор темы, kylolink, объясняет: «Когда я начинал использование Java, я полагался на Eclipse, чтобы сделать всю компиляцию для меня, и просто беспокоился о написании кода.» Я видел этот вопрос много раз, и, в самом деле, это то, что подтолкнуло меня мои сообщение в блог системы GPS и интегрированных сред разработки: полезно или вредно? Я люблю мощные современные Java IDE, и они делают мою жизнь легче на ежедневной основе, но есть и преимущества, чтобы знать, как строить и запускать простые примеры Java без них. Это сообщение посвящено тому, как сделать именно это. В моем блоге обучения Java с помощью простых тестов, я написал о том, как я иногда люблю использовать простой текстовый редактор и средства командной строки для написания, построения и запуска простых приложений. У меня есть довольно хорошее представление теперь, как моя много «накладные расходы» мои любимые IDE для Java требуют и сделать раннее решение, являются ли преимущества, достигнутые с помощью интегрированной среды достаточно, чтобы оправдать «накладные расходы». В большинстве реальных приложений, нет никаких сомнений, IDE «ВЛ», дорогого стоит. Тем не менее, для простейших примеров приложений, это не всегда так. В остальной части этой должности показывает, как построить и запустить Java код без IDE для этих ситуаций.

Написание и выполнение Java-кода

Чтобы сделать пример более наглядным, я буду использовать некоторые очень простые Java-классы, которые связаны друг с другом через композиции или наследования и находятся в одном пакете с именем dustin.examples. В двух классах отсутствует функция main , в третьем классе Main.java есть функция main , которая позволяет продемонстрировать запуск класса без IDE. Ниже приведен код этих трех классов: Parent.java

 package dustin.examples; public class Parent < @Override public String toString() < return "I'm the Parent."; >> 

Child.java

 package dustin.examples; public class Child extends Parent < @Override public String toString() < return "I'm the Child."; >> 

Main.java

 package dustin.examples; import static java.lang.System.out; public class Main < private final Parent parent = new Parent(); private final Child child = new Child(); public static void main(final String[] arguments) < final Main instance = new Main(); out.println(instance.parent); out.println(instance.child); >> 

На следующем скриншоте показана структура каталогов с этими классами .java.Снимок экрана показывает, что исходные файлы в иерархии каталогов, представляющей имя пакета (dustin/examples, потому что информация о пакете dustin.examples) и что этот пакет отражающей иерархию каталогов находится под подкаталоге SRC. Я также создал подкаталог классов (который в настоящее время пуст) для размещения скомпилированных файлов .class потому Javac не создаст этот каталог, когда он не существует.

Здание с JAVAC и запуск с Java

Независимо от того, какой подход один использует для создания Java-код (Ant, Maven, Gradle или IDE), это в конечном счете сводится к JAVAC. Стандартные параметры в Oracle/Sun предоставленный JAVAC инструмент командной строки можно увидеть, запустив JAVAC -help и дополнительные опции расширения могут быть просмотрены, запустив JAVAC -help -X. Подробнее о том, как применять эти варианты можно найти в документации инструментов для JAVAC для ОС Windows или Unix / Linux. Как говорится в Javac документации, опция -sourcepath можно использовать, чтобы выразить каталог, в котором существует исходные файлы. В моей структуре каталогов, показанного на снимке экрана выше, это означает, что, предполагая, что я бегу команду JAVAC из C: \ Java \ примеров \ javacAndJava \ директории, я должен был бы иметь нечто подобное в моей команде: Javac -sourcepath SRC SRC \ Дастин \ примеры \ *. Java. Следующий снимок экрана показывает результаты этого. Компиляция и запуск Java без IDE - 2Потому что мы не указать каталог для файлов .class, они были размещены по умолчанию в том же каталоге, что и исходный .java файлы, из которых они были составлены. Мы можем использовать опцию -d , чтобы исправить эту ситуацию. Наша команда может быть запущена сейчас, например, как Javac -sourcepath SRC -d классов SRC \ Дастин \ примеры \ *. Явы. Как отмечалось ранее, выбранную папку (классы) должны уже существовать. Когда это произойдет, команда поместит .class файлы в указанную папку, как показано на следующем снимке экрана Компиляция и запуск Java без IDE - 3С исходные файлы Java составлен в соответствующие .class файлов в указанной директории, мы можем запустить приложение, используя меню быстрого запуска инструмента командной строки Java Java. Это просто сделать, следуя инструкциям, приведенным на Java -help или страницы ява инструментов и указав расположение файлов .class с опцией -classpath (или -cp ). Использование обоих подходов указать, что каталог классы, где искать файлы .class демонстрируется в следующем снимке экрана. Последний аргумент является полное (весь пакет Java) имя класса, который имеет главную функцию, которая будет выполнена. Команды продемонстрировали в следующем снимке экрана является классы Java -cp dustin.examples.Main и классы Java -classpath dustin.examples.Main. Компиляция и запуск Java без IDE - 4

Построение и запуск с Ant

Для простейших Java приложений, это довольно проста в использовании JAVAC и Java для создания и запуска приложения, соответственно, как только что продемонстрировали. Как приложения получить немного сложнее (например, код существующей в более чем один пакет / каталог или более сложных классам зависимостей от сторонних библиотек и фреймворков), такой подход может стать громоздким. Apache Ant является старейшим из «большой тройки» Явы построить инструменты и был использован в тысячи приложений и развертывания. Как я уже говорил в предыдущем посте блога, очень простой Ant построить файл легко создать, особенно если начинается с шаблона, как я изложил в этой должности. Следующий список кода предназначен для Ant файла build.xml, которую можно использовать для составления .java файлы в файлы .class а затем запустить класс dustin.examples.Main как это было сделано выше с JAVAC и Java. build.xml

   Building Simple Java Applications Without An IDE          

Компиляция и запуск Java без IDE - 5

Я не использовал Ant свойства и не входит общих целей я обычно включают (например, «чистых» и «Javadoc»), чтобы сохранить этот пример как можно более простым и держать его близко к предыдущему примеру с помощью JAVAC и Java. Отметим также, что я включил «отладки» установлен на «истинный» для JAVAC Ant задачи, потому что это не так в случае отказа Ant, но верно с умолчанию JAVAC в. Не удивительно, Javac задача и Java задача Муравья напоминают JAVAC команда инструменты и Java. Потому что я использовал имя по умолчанию Ant ожидает файла сборки, когда он не указан явно (build.xml) и потому что я предоставил «Выполнить» цель как «по умолчанию» для этого сборки и потому, что я включен «скомпилировать» как зависимость запустить «Run» цель и потому Ant был на пути моем окружении в, все, что нужно сделать в командной строке, чтобы получить Ant для компиляции и запуска пример типа «муравей» в каталоге с файлом build.xml. Это показано в следующем снимке экрана. Хотя я продемонстрировал компиляции и выполнения простого приложения Java с Ant, я, как правило, только компилировать с Ant и бежать с Java (или скрипта, который вызывает Java, если путь к классам, являются тяжкими).

Построение и запуск с Maven

Хотя Ant был первый основной инструмент Java сборки, Apache Maven в конечном итоге получили свои известность во многом благодаря его принятия конфигурации в соответствии с соглашением и поддержкой общих хранилищ библиотек. Maven является простым в использовании, когда код и сгенерированные объекты соответствовать его стандартной схеме директорий. К сожалению, мой пример не следует эту структуру каталогов, но Maven действительно позволяет нам переопределить ожидаемое структуру каталогов по умолчанию. Следующий список код для POM файл Maven, который используется вместо каталоги исходные и целевые и обеспечивает другие минимально необходимые элементы для Maven построить с помощью Maven 3.2.1. pom.xml

  4.0.0 dustin.examples CompilingAndRunningWithoutIDE 1 compile src classes $-$  

Компиляция и запуск Java без IDE - 6

Поскольку выше файл pom.xml определяет «defaultGoal» из «скомпилировать» и потому pom.xml файлов POM по умолчанию обычай, что Maven исполняемый (МВН) ищет и потому каталог бен установку Maven находится на моем пути, только я необходимые для запуска «MVN» для компиляции файлы .class как указано в следующем снимке экрана. Я могу также запуска скомпилированного приложения с Maven с помощью командной Mvn Exec: Java -Dexec.mainClass = dustin.examples.Main, которое наблюдается в на следующем снимке экрана. Как и в случае с Ant, я, как правило, не использовать Maven для запуска мой простой Java приложения, а вместо этого использовать Java на скомпилированный код (или использовать сценарий, вызывающий Java непосредственно в течение длительного классам).

Построение и запуск с Gradle

Gradle является самым молодым, модных и стильных из трех основных инструментов Java сборки. Я иногда скептически относятся к существу то, что является модным, но я нашел много вещей, чтобы нравится Gradle (написанной в Groovy вместо XML, встроенный в Ant поддержки, встроенной поддержкой Ivy, конфигурации по соглашению, которое легко перенастроен , поддержка хранилища Maven, и т.д.). Следующий пример показывает сборки Gradle, который можно использовать, чтобы скомпилировать и запустить простое приложение, которое является основным пример кода для этого поста. Это адаптированный примере я представил в блоге Simple Gradle Java Plugin Customization. build.gradle

 apply plugin: 'java' apply plugin: 'application' // Redefine where Gradle should expect Java source files (*.java) sourceSets < main < java < srcDirs 'src' >> > // Redefine where .class files are written sourceSets.main.output.classesDir = file("classes") // Specify main class to be executed mainClassName = "dustin.examples.Main" defaultTasks 'compileJava', 'run' 

Компиляция и запуск Java без IDE - 8

Первые две строки из файла build.gradle указать применение плагина Java и плагином Application, в результате чего кучу функциональности автоматически этой сборке. Определение «sourceSets» и «sourceSets.main.output.classesDir» позволяет перекрывать каталогов по умолчанию Java плагина Gradle для исходного кода Java и скомпилированных двоичных классов соответственно.»MainClassName» позволяет явным указанием, какой класс должен быть запущен в рамках плагина Application. Линия «defaultTasks» определяет задачи, которые будут работать, просто набрав «Gradle» в командной строке: ‘compileJava’ является стандартной задачей обеспечивается плагином Java и «Выполнить» является стандартной задачей обеспечивается плагином Application. Потому что я назвал сборки build.gradle и потому я указал задач по умолчанию ‘compileJava «и» Выполнить «и потому что я есть установочный бен каталог Gradle на моем пути, все, что я должен был сделать, чтобы построить и запустить примеры было введите «Gradle», и это демонстрируется в следующем снимке экрана. Даже самый большой скептик должен признать, что Gradle сборки очень скользкий для этого простого примера. Она сочетает в себе лаконичность от опираясь на определенные конвенций и предположений с очень легкой механизма переопределения выберите по умолчанию в случае необходимости. Тот факт, что он находится в Groovy вместо XML также очень привлекательным! Как и в случае с Ant и Maven, я, как правило, чтобы построить только с помощью этих инструментов и, как правило, работать скомпилированные файлы .class непосредственно с Java или скрипта, который вызывает Java. Кстати, я, как правило, также архивировать эти .class в баночку для запуска, но это выходит за рамки этой статьи.

Заключение

IDE часто нет необходимости для построения простых приложений и примеры и может быть даже более накладные, чем это стоит для простейших примеров. В таком случае, это довольно легко применять JAVAC и Java непосредственно построить и запустить примеры. Как примеры принимать более активное участие, инструмент для сборки, такие как Ant, Maven, или Gradle становится более привлекательным. Тот факт, что многие среды разработки поддерживают эти утилиты сборки означает, что разработчик может перейти в IDE с помощью встроенного инструмента, созданного ранее в процессе, если было определено, что поддержка IDE был нужен как простое приложение переросла в полноценный проект.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *