Создал проект в NetBeans (по книге П.Ноутона, Г. Шилдта "Java2. Наиболее полное руководство").
При создании проекта был создан класс example2.Example2 с папкой проекта D:ExamplesFromBookExample2Example2 (а расположение проекта соответственно D:ExamplesFromBookExample2 ). Создал байт-код с помощью команды в командной строке
в результате чего был создан файл Example2.class .Далее пытался разнообразными способами запустить .class файл из командной строки, среди которых, например, был такой:
в результате чего получил ошибку
Какую команду необходимо использовать и из какой папки запускать?
Для того, чтобы запустить программный код написанный на языке Java, необходимо иметь установленный JDK и нужно записать код с помощью блокнота (или любого другого текстового редактора).
Откройте блокнот или Notepad или любой другой текстовый редактор и наберите следующий код
Сохраните ваш файл под именем Hello.java. Обязательно укажите расширение .java, иначе ничего не получится. Имя файла должно полностью совпадать с именем класса в коде (совпадать должен даже регистр букв).
Перенесите получившийся файл в какую-нибудь папку (например, папку назовите java_prog), находящуюся в корне диска C. Это нужно сугубо для удобства.
Перейдите в эту папку и там у Вас будет один файл Hello.java, если так, то всё прекрасно.
Откроем командную строку Windows. Сейчас у Вас есть два варианта:
- Нажмите сочетание клавиш Win+R -> введите «cmd» -> нажмите клавишу Enter -> откроется окно командной строки;
- Откройте меню пуск -> введите в поле «Поиск» слово «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.