Задать вопрос

Почему не запускается код на Java?

Всем привет


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


Читаю книгу Сьерра, Бейтс «Изучаем Java» и захотел уже опробовать код. Дочитал до 70-ой страницы, но пока все в теории и без запуска. В книге нет инструкции по установке и настройке Java, но знакомый подсказал создать переменные в свойствах системы.


Код:
public class HelloWorld {

public static void main(String[] args) {

System.out.println(«Hello world!»);

}

}



В командной строке:

C:\>javac HelloWorld.java


C:\>java HelloWorld

Error: Could not find or load main class HelloWorld



Файл с бинарным кодом HelloWorld.class на диске C появляется.


Java 7 64bit стоит в D:\Program Files\Java. Система Windows 7 64bit


Заранее спасибо за помощь!


P.S. Честно говоря, ожидал, что при изучении современных языков увижу среду разработки по типу Delphi, Visual Studio. А тут такой хардкорд в виде командной консоли.
  • Вопрос задан
  • 90263 просмотра
Подписаться 6 Оценить Комментировать
Решения вопроса 1
mgramin
@mgramin
Нужно про classpath почитать, например здесь для начала — www.skipy.ru/technics/likbez.html
Ответ написан
Пригласить эксперта
Ответы на вопрос 11
OLDJman
@OLDJman
Добрый день. Специально зарегестрировался, чтобы описать решение этой проблемы.
Сам недели две назад тоже мучился и думал что я м.д.к, потому ничего не работает.

Это не совсем так, поэтому читайте ниже.

Суть проблемы:
При повторение видео урока, а точнее действий в нем, желаемый результат не выводился. Конкретнее была написана программа вывода сообщения Hellow World в консоли WIndows
А именно, компилированный ява файл, вызывался командой java ИМЯ.class, и выходила соответствующая ошибка: "could not find or load main class ИМЯ_класса"
т
Как решил:
Вызывать надо уже ОТКОМПИЛИРОВАННЫЙ файл командой[b][i] java ИМЯ [/i][/b]И все!!! Тогда консоль нормально воспроизводит программу, если, разумеется, в ней нет ошибок.
Возможно для гуру программирования, это очевидный ответ, и кажется что это норма, но я как 3-ью неделю изучающий яву, на второй день реально не понимал в чем суть проблемы. И так как несмотря на то что обучение идет трудно, мне было обидно и непонятно почему это не работает.

Ниже распишу полный алгоритм работы с ява машиной на базовом уровне, может быть кому-то это поможет.

1) Скачать JDK c оф сайта (ссылку давать не буду, это точно найти сможете)
2) Установить скачанный пакет
3) Подключить установленную ява машину к нашей системе ( у меня это Windows 7)
а) зайти в папку с установленным пакетом и найти файл java.exe (у меня на Windows это было: C:\Program Files\Java\jdk1.8.0_05\bin\java.exe)
_______обращаю внимание, что находить именно файл java.exe не обязательно, просто я сделал так=)
б) Нажать на java.exe правой кнопкой мыши, выбрать "Свойства". В выскочевшем окошке, во вкладке "Общие", ищите строку "Расположение". Выделяйте и копируйте путь (у меня это C:\Program Files\Java\jdk1.8.0_05\bin)
в) Открываем пуск, наводим мышку на "Мой компьютер", жмем правую кнопку мыши, жмем "Свойства".
г) В открывшемся окне, слева, жмем кнопку "Дополнительный параметры системы"
д) В отрывшемся окне "Свойства системы", во вкладке "Дополнительно" (она по умолчанию выделена/открыта), внизу ищем кнопку "Переменные среды". Жмем на нее
е) В открывшемся окне "Переменные среды", в верхней его части, а именно "Переменная среды пользователя..." нажимаем кнопку создать
ж) В открывшемся окне вводим имя переменной, у меня это Path (можно ли другую, я не знаю), а в поле "Значение" вводим наш скопированный путь (C:\Program Files\Java\jdk1.8.0_05\bin)
д) Жмем "ОК", сохраняем все.
4) Проверяем нашу ява машину
а) Запускаем консоль (либо WIN + r => затем cmd и Enter либо Пуск => вводим в поиск над пуском cmd и жмем Enter)
б) В открывшейся консоли, вводим java
в) После этого должно появиться куча команд ява, служебная информция и прочее, если все нормально подключилось, если нет, то выдаст ошибку, вроде "Нет такой команды", или что-то похожее. Если что-то не так, делай действия выше по новой.
5)Если все ок, идем дальше. Создаем нашу простую программу на java.
6)Открываем блокнот, и пишем там код ниже:
[code=java]public class Hellow
{
public static void main(String[] args)
{
System.out.println("Hellow World!");

}
}
[/code]
Обращаю внимание, что тут частые ошибки, это не написан метод "main", и "println" ошибочно написано. Внимательно проверьте что напечатали сами. Если вы абсолютный новичек, то прежде чем будете понимать что происходит, должно пройти время, поэтому не умничайте, и проверяйте вплоть до каждой запятой.
7) Сохраняем наш файл. Вот тут обратите внимание на деталь: "В строке public class Hellow, слово Hellow, это имя класса, оно по сути, может быть почти любым, но очень важно, чтобы это имя совпадало с именем вашего файла, что вы сохраняете, причем если у вас он с большой буквы, значит и имя файла должно быть с большой. Сегодня я выяснил что в java вообще принято давать имена классов с большой буквы, так что не ленитесь, пишите с большой, но с маленькой, тоже не будет ошибкой, главное сохранить правило, какое имя класса, такое и имя файла.
Сохранять надо с расширением .java
В итоге, в нашем примере нужно сохранить файл в таком виде Hellow.java (вроде бы есть исключения, типо можно обозвать файл как хочу, но я не уверен, увы, но пока этого не знаю, так что делайте как выше написано, потом если узанете правду, напишите мне, благодарен буду)
8) На данном этапе, мы просто создали файл, который может откомпилировать программа, вторая ошибка, это желать сразу открыть этот файл и исполнить его. Деталей я не знаю, но суть в том, что современные Операционки и процессоры, не умеют это делать, не знаю почему, вроде что то там с процессом производства компьютеров, они вроде 4-битные, или наоброт не 4 битные, короче этот код просто так не запустить, его нужно откомпилировать, перевести в машинный язык, который можно запускать, для этого идем к след шагу
9)Запускаем консоль, в ней переходим в папку с нашим файлом Hellow.java
Обращаю внимание, так как я полный новичек, то как переходить в консоли, тоже понятия не имел, на всякий случай распишу минимум, который нужно знать
Чтобы зайти в каталог, нужно ввести команду cd ИМЯ_каталога. Например, нам нужно зайти в каталог/папку Desktop , вводим cd desktop. Разумеется, зайти мы туда сможем, только если эта папка находимся в том месте, где мы есть. Текущее местоположение отображается слева от вводимой команды в виде C:\Program Files\
Чтобы вернуться в корневую папку диска C нужно ввести cd \
Как-то можно подыматься на каталог выше, и прочие действия, но тут уже гуглите, у меня задача другая.
Команда dir показывает список всех папок в данном каталоге/папке
Если вы знаете точный путь к каталогу, можно из любого месте прописать полный путь в виде C:\Program Files\Java\... и вы туда попадете. В конце обязательно ставте \, а в начале диск C например. Иначе не сможете зайти.
Команад help выводит вроде базовый список возможных команд

Итого, алгоритм действий для попадания в нашу папку, где лежит файл Hellow.java
ввести cd \
потом dir
прочитать что там есть, зайти в нужную папку командой cd ...
снова dir
и так далее
Разумеется нужно понимать самому, где находиться твой файл, например, путь для файла, сохраненного на рабочем столе будет таким c:\users\ИМЯПОЛЬЗОВАТЕЛЯ\desktop\
10) Теперь нам нужно откомпилировать файл Hellow.java. Для этого в консоли пишем javac Hellow.java
Если все ок, через пару секунд снова загорится поле ввода команды.
Если выскочила ошибка, как правило это какой либо косяк на этапе компиляции, читайте что там написано, там всегда пишут в чем была ошибка. Чаще всего это косяк в коде. Заходите в ваш файл и проверяйте внимательно строки. Чем чаще будете читать ошибки, тем быстрее научитесь их распозновать, Знание английского в 100500 раз облегчит работу.
11) Когда файл откомпилировался, он сохраняется в той же папке, что и основной (Hellow.java), принимая имя, вроде бы класса, это детали, я их увы, не знаю, но расширение станет уже .class В нашем случае это будет файл Hellow.class
12) Вот только теперь можно запускать этот файл, для проверки, что он у нас есть в папке, где мы находимся, в консоли вводим команду dir
видим наш файл, и вводим команду java Hellow
Причем обращаю внимание, не java Hellow.class , а именно java Hellow. Так как первый вариант выдаст ошибку, уж почему, извините, я не знаю.

13) в консоли, на новой строке, выскочит сообщение Hellow World!
Все.

Вот собственно алгоритм запуска ява программ из консоил виндоус.
Я не претендую на полноту изложения, убер крутой и новый материал, просто я две недели сам мучился с этой проблемой, и писал код в среде разработчика IDEA. И мучался тем, что имея уже какое-то представление о Java, не мог запустить ее через консоль. Меня это мучило, поэтому когда я смотря очередную лекцию, увидел в чем была моя ошибка, меня осенило, и я решил свою проблемы, сняв камень с души, и как следствие, успокоившись. На радостях, я решил, что если в мире есть хотя бы еще один человек, которому эта информация может помочь, то пусть будет так.

Спасибо за внимание и заранее извините за ошибки. Если когда-нибудь надо будет, может быть я исправлю все недочеты своей короткой статьи, а пока держите, как есть.
Удачи в программировании!
Ответ написан
SSiarhei
@SSiarhei
Конечно нетбинс это хорошо и явно стоит поставить, но понимать как все запускается тоже нужно.

1. Удали вообще класпаф из переменных окружения. Он там ни к чему совершенно.
2. PATH=D:\Program Files\Java\jdk1.7.0_25\BIN, остальное лишнее.

после этого запускаться должно с любой папки. Не поможет — отпишись, разберемся

p.s. ты не правильно вообще запускаешь. ты должен находиться в папке в которой у тебя класс лежит, а не просто в с:\
Ответ написан
@xaoc80
Советую поставить NetBeans, тогда не будет головной боли по поводу запуска программ прямо из ID
Ответ написан
Пробовал файлы .bat создавать? Это просто текстовый файл одна строка одна команда.

start.bat можно создать в любом месте
@echo off
d:
cd "\Program Files\Java\jdk1.7.0_25\BIN"
javac HelloWorld.java

за полнофункциоальность не проверял, скорее просто как просто подсказка
Первая строка убирает вывод текста команд
Вторая строка задает текущим диск D:
Третья переходит в нужную тебе папку (какую именно сам должен определить)
Четвертая запускает
Ответ написан
@AlexanderNeznakhin
У меня немного другой опыт.
При возникновении ошибки "Error: Could not find or load..." запустил файл с учетом имени пакета.
Поясню.
Файл Hellow.java выглядел так:

package hellow;
public class Hellow {
public static void main(String[] args) {
System.out.println("Hellow, World!");
}
}

Откомпилированный файл Hellow.class создал в каталоге hellow, согласно имени пакета.
Запустил файл с уровня пакета (т.е. из того каталога, в котором "виден" каталог hellow, содержащий файл Hellow.class, но "не виден" сам файл Hellow.class).
При этом в команде указал имя пакета:

java hellow.Hellow

Получил ожидаемый вывод:

Hellow, World!
Ответ написан
Комментировать
@Tupica
Не мог запустить свой ява код, мучался, пробовал всякое разное.
Вот все что написано вообще не помогло.
Проблема оказалась в том, что я тупо создавал ява проект, у которого код начинался с "package Название;"
Как только удалил в своих кодах строчку с package сразу все без проблем начало запускаться этим способом с java ProgramName
Ответ написан
@deleted-Ari100teLL

Для начала нужно установить JVM(Java Virtual Machine), а затем установить переменные среды:
http://java-course.ru/begin/install-jdk/
И попробуй скачать и установить IDE:
       1)Intellij Idea
       2)NetBeans
       3)Eclipse

Ответ написан
@qassarb
Привожу пример на Linux, т.к. счтаю его более наглядным.
На виндовозках тоже самое
Итак:
$ pwd
/home/user
$ mkdir test
$ vi ./test/Main.java.


Пример содержимого Main.java:

package test;
class Main {
     public static void main (String args[]) {
          System.out.println ("Hi, tushkan!")
     }
}


для компиляции необходимо:
$ cd /home/user
$ javac test/Main.java
$ java test.Main


А вообще почитать можно тут: docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html

BR < qassarb
Ответ написан
Комментировать
@AndShoot
aboutprognotmuch.blogspot.ru/2018/03/helloworld-ja...

Вот здесь кратко и понятно.
Ответ написан
Комментировать
Запуск Example.class у меня получился так.
1) делаем кодовую страницу 1251 чтобы правильно отображались русские буквы
Chcp 1251

2) делаем нашу jdk отдельным диском
subst j: "c:\Program Files x86\Java\jdk1.7"

3) В командной строке выполняем команду (java.exe из папки bin, у меня это J:\bin)
java.exe -classpath "X:\Learn\out\production\Learn" Example
Ответ написан
Комментировать
@Sergey_USB
у меня такая хрень была пока папка с проектом по русски называлась, переименовал папку проекта - и все ОК
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы