Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите начинающему!

12K
03 апреля 2006 года
direct
20 / / 03.04.2006
доброго времени суток!
начал учить яву, разбираю первую программу "Hello world!".
Создал файл HelloWorld.java c таким содержанием:

class HelloWorld{
public static void main(String [] args){
System.out.println("Hello world!");
}
}
Далее, компилятор создал файл HelloWorld.class.
А при запуске программа выдает такую ошибку:
d:\jdk1.4\bin\java HelloWorld.class
Exception in thread "main" java.lang.NoClassDefFoundError: hworld/class

Где тут ошибка?
Спасибо за ответ!
16K
05 апреля 2006 года
anpol
3 / / 05.04.2006
Ошибка в том, что ты случайно затронул очень важную, но часто приносящую головную боль тему в Java - пакеты классов.
Дело в том, что запись HelloWorld.class интерпретируется при выполнении, как класс с именем "class" вложенный в пакет "HelloWorld"

т.е. JVM при запуске пытается найти класс "class" в папке "HelloWorld"


исправление ошибки - d:\jdk1.4\bin\java HelloWorld
12K
05 апреля 2006 года
direct
20 / / 03.04.2006
Цитата:
Originally posted by anpol
Ошибка в том, что ты случайно затронул очень важную, но часто приносящую головную боль тему в Java - пакеты классов.
Дело в том, что запись HelloWorld.class интерпретируется при выполнении, как класс с именем "class" вложенный в пакет "HelloWorld"

т.е. JVM при запуске пытается найти класс "class" в папке "HelloWorld"


исправление ошибки - d:\jdk1.4\bin\java HelloWorld


Ты полностью прав! Спасибо, заработало! Интересно, а как же авторы руководства (которе я изучаю) эту ошибку упустили?:)

17K
24 апреля 2006 года
shtuchka
3 / / 24.04.2006
А у меня тогда встречный вопрос по тому же самому примеру Привет, Ява.

sdk1.5.0_06 установлен софт в директорию C:\Program Files\Java

Файл Hello2.java расположен в папке C:\First
Компилируется все ок, без ошибок создается файл Hello2.class

Я запускаю его на исполнение
C:\>"C:\Program Files\Java\jdk1.5.0_06\bin\java" C:\First\Hello2
никаких .class не добавляю. у меня все равно вылазит ошибка
Exception in thread "main" java.lang.NoClassDefFoundError: C:\First\Hello2

Может ли это быть ошибкой изза неправильной установки самого jdk? или как? или что?

Спасибо!

Сам текст примеры стандартный:
public class Hello2{
public static void main(String arg[]){
System.out.println("Hello! Java.");
}
}

Пробовлись и еще варианты:
class Hello2{
public static void main(String arg[]){
System.out.println("Hello! Java.");
}
}
//***********************
public class Hello2{
public static void main(String args[]){
System.out.println("Hello! Java.");
}
}
Все равно не работает и одна и таже ошибка.


554
24 апреля 2006 года
Zhilin Mike
159 / / 11.02.2003
Цитата:
Originally posted by shtuchka
А у меня тогда встречный вопрос по тому же самому примеру Привет, Ява.

sdk1.5.0_06 установлен софт в директорию C:\Program Files\Java

Файл Hello2.java расположен в папке C:\First
Компилируется все ок, без ошибок создается файл Hello2.class

Я запускаю его на исполнение
C:\>"C:\Program Files\Java\jdk1.5.0_06\bin\java" C:\First\Hello2
никаких .class не добавляю. у меня все равно вылазит ошибка
Exception in thread "main" java.lang.NoClassDefFoundError: C:\First\Hello2

Может ли это быть ошибкой изза неправильной установки самого jdk? или как? или что?

Спасибо!

Сам текст примеры стандартный:
public class Hello2{
public static void main(String arg[]){
System.out.println("Hello! Java.");
}
}

Пробовлись и еще варианты:
class Hello2{
public static void main(String arg[]){
System.out.println("Hello! Java.");
}
}
//***********************
public class Hello2{
public static void main(String args[]){
System.out.println("Hello! Java.");
}
}
Все равно не работает и одна и таже ошибка.



Дело в том, что параметром должен идти не название файла или путь - а название класса!!!!

Поэтому необходимо прописать classpath (-cp option) до твоего файла с этим классом, ну и тогда все заработает.

17K
24 апреля 2006 года
shtuchka
3 / / 24.04.2006
Цитата:
Originally posted by Zhilin Mike
Дело в том, что параметром должен идти не название файла или путь - а название класса!!!!

Поэтому необходимо прописать classpath (-cp option) до твоего файла с этим классом, ну и тогда все заработает.



Я нашла даже статьи про обязательность опций..но куда б и как бы я не ставила эти параметры..у меян не работает..буду еще пробовать(

554
24 апреля 2006 года
Zhilin Mike
159 / / 11.02.2003
Цитата:
Originally posted by shtuchka
Я нашла даже статьи про обязательность опций..но куда б и как бы я не ставила эти параметры..у меян не работает..буду еще пробовать(



Ну что ж...
Можешь прописать JAVA_HOME следующим способом:

setx JAVA_HOME "C:\Program Files\Java\jdk1.5.0_06"
setx PATH %PATH%;%JAVA_HOME%\bin

потом
cd C:\First\
java Hello2

Попробуй... может поможет.
Сам не проверял

17K
25 апреля 2006 года
shtuchka
3 / / 24.04.2006
Цитата:
Originally posted by Zhilin Mike
Ну что ж...
Можешь прописать JAVA_HOME следующим способом:

setx JAVA_HOME "C:\Program Files\Java\jdk1.5.0_06"
setx PATH %PATH%;%JAVA_HOME%\bin

потом
cd C:\First\
java Hello2

Попробуй... может поможет.
Сам не проверял



Карочи, вчера перед сном у меня все же получилось. Сделала следующее:
прописала в Path путь к javac, java и так далее..которые у меня в Програм Файлс/Ява...
Создала переменную classpath с параметрами, как уже давались тут в одной из тем..прям в этом разделе..кому интересно - найдут..переписывать не буду. И! стала запускать и компилятор и на исполнение, находясь в каталоге, гед собственно лежат мои *.java и полученные *.class файлы.
А при запуске на исполнение в результате пишу просто:
С:> java -classpath . Hello

bи все работает. Не знаю, насколько важно было создание сист.переменной ClassPath, но то, что я прописала пути в Path это облегчило однозначно.

Спасибо всем за советы..еще обращусь)))

11K
26 апреля 2006 года
0ver10PD
45 / / 05.12.2005
Цитата:
Originally posted by shtuchka
Не знаю, насколько важно было создание сист.переменной ClassPath, но то, что я прописала пути в Path это облегчило однозначно.



Это очень важно для запуска самих приложений из командной строки. Если сделать JAR файл то все будет нормально это переменная не является необходимой (но только при условии запуска при помощи javaw, если запускать через java -jar то опять же переменная необходима).

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог