#java
Пытаюсь выполнить обычный Hello, World, как это сказано в одном из мануалов.
class HelloWorld
{
public static void main(String args [])
{
System.out.println("Hello World");
}
}
Запускаю в транслятор так:
javac C:\Java\HelloWorld.java
Все проходит успешно. По крайней мере, никаких сообщений о крахе не выводится.
Но когда уже хочу получить результат, запуская так:
java HelloWorld
То в консоли выводится ошибка:
Java could not find the main class HelloWorld
Как его запустить, в чем проблема?
Вот полный лог происходящего в консоли:
C:\Program Files\Java\jdk1.7.0_07\bin>javac C:\Java\HelloWorld.java
C:\Program Files\Java\jdk1.7.0_07\bin>java HelloWorld
Error: Could not find or load main class HelloWorld
C:\Program Files\Java\jdk1.7.0_07\bin>
Ответы
Ответ 1
Пробуйте так: java -classpath . HelloWorld или так: java -cp . HelloWorld Иначе java не может найти скомпилированный класс.Ответ 2
У меня был случай когда даже команда java -classpath . HelloWorld давала ошибку "Could not find or load main class" решилось таким образом java -classpath "jar_name" com.list_of_your_packages.launcher То есть нужно было указать сам джарник в classpath, а потом указать полный путь к классу с main методомОтвет 3
Может быть кому-нибудь пригодится. Нашел еще один вариант ответа, который помог мне: Иногда полезно читать не только книжки, но и документацию. http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html java команда не воспринимает ваше e:\MyJava\example как путь вообще. Она считает что это имя класса. Пути задаются иначе. Это большая и сложная тема - classpath. java -cp e:\MyJava\ example Мы указываем искать классы в e:\MyJava\ запустить класс example.Ответ 4
Для класса, лежащего в директории src и в пакете basic, package basic; public class Main { public static void main(String[] args) { System.out.println("Hello from Main"); } } у меня работает так $ javac src/basic/Main.java $ java -cp src basic.Main Hello from MainОтвет 5
Проблема решается, если изменить строку запуска вместо команды javac C:\Java\HelloWorld.java запускать так javac C:\Java\HelloWorld С удалением расширения файла *.java мэйн класс обнаруживается. Программа запускается. Почему именно так, я не стал разбираться.Ответ 6
Потратил не мало времени что бы решить этот вопрос, а решение таково. Нужно правильно прописывать переменные среды. Нужно в переменных среды указывать путь к bin и путь к lib. Про lib редко кто говорит. Если запускать из командной строки и путь к библиотекам не указан в переменных среды, то jvm не знает где их брать. Win 10. Например c:\Program Files\Java\jdk-10.0.1\lib\ и c:\Program Files\Java\jdk-10.0.1\bin\ Успехов!Ответ 7
В переменных среды, где пишете в переменную CLASSPATH путь до JDK, перед путем поставьте ".;". У меня получилось .;C:\Program Files\Java\jdk1.8.0_201\bin Точка означает текущий каталог. После редактирования не забудьте перезагрузить Windows.Ответ 8
Перейди в нужный каталог с помощью консольной команды cd; Так же можно добавить нужный путь в переменную среды CLASSPATH; Самый простой способ это вызвать CMD из TotalCommander, перейдя в нужный катало.
Комментариев нет:
Отправить комментарий