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

Фото
- - - - -

проблема с NetBeans IDE 3.6


  • Вы не можете создать новую тему
  • Please log in to reply
11 ответов в этой теме

#1 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 22 сентября 2004 - 13:09

Только приступил к изучению этого "великого и могучего".
Начал естесственно, загрузив j2sdk1.4 + NetBeans IDE 3.6 - инструмент вроде удобный, но вот проблема: компилирует код без проблем, а вот при попытке запуска любой скомпилированной программы в окошко I/O выводит следующее

java.lang.NoClassDefFoundError: My/HelloDate (wrong name: HelloDate)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)

Ну ту вначале вроде понятно бла бла бла Директория/имя класса, а в чём ошибка то? Всё по учебнику, имя класса совпадает с именем файла, в котором он находится. Даже Bruce Eckel-евские учебные исходники не запускает. может где чего-нибудь настроить надо?

Хелп ми, плиз.
  • 0
Да, я такой!

#2 geek

geek

    кулхацкер млин :)

  • Пользователь
  • 153 сообщений
  • Откуда:Мустамяэ

Отправлено 22 сентября 2004 - 13:26

Может быть дело в переменной CLASSPATH?
  • 0

#3 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 22 сентября 2004 - 19:13

а где её насроить?
  • 0
Да, я такой!

#4 geek

geek

    кулхацкер млин :)

  • Пользователь
  • 153 сообщений
  • Откуда:Мустамяэ

Отправлено 22 сентября 2004 - 20:49

Вообще-то это обычная переменная окружения операционной системы. Но в твоем случае ее наверно надо задавать где-то в настройках NetBeans.

Про то, что такое эта CLASSPATH и зачем она нужна можно почитать у того же Экеля:

http://www.bruceecke...html#Heading191

И еще: открой командную строку, перейди в каталог, где находится файл HelloDate.class (или как там твоя программа называется) и дай команду

java -classpath . HelloDate

это должно сработать. А вот как сделать чтобы из IDE работало - это уже надо изучать документацию по NetBeans.
  • 0

#5 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 25 сентября 2004 - 15:23

Кароче, читать, учить, учить и читать мне ещё долго...
но спасибо, всё таки немного помогло
  • 0
Да, я такой!

#6 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 26 сентября 2004 - 00:03

Я бы предложил, изучая Java, не пытаться за одно разобраться с NetBeans, который сам по себе уже довольно сложен, а начать с простого, то бишь с простой программы в твоем лююбимом текстовом редакторе.

Кстати, хорошим редактором и "прозрачным" минималистским IDE (при условии установленной Java SDK) может послужить SCITE. Просто создаешь в нем файл с расширением .java, и получаешь редактор исходника (с подсветкой синтаксиса, как минимум), жмешь F7, и твоя прога компилируется самым непосредственным образом (через запуск "javac YourClass.java"), жмешь F5, и твоя прога запускается во встроенной консоли, причем также самым элементарным образом ("java YourClass"). По крайней мере, мне это понравилось (я сам изучаю сейчас Java в универе). :)

По аналогии, очень хорош в качестве Java IDE Eclipse v3.1M1. На его платформе основаны такие коммерческие IDEшки, как IBM WebSphere Studio и Oracle JDeveloper 10i, и интерфейс его, по-моему, несколько более удобен, чем многооконная среда NetBeans, особенно при работе в Windows...

Сообщение изменено: tomatensaft (26 сентября 2004 - 00:08 )

  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump

#7 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 26 сентября 2004 - 17:30

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

Сдаётся мне я как то коряво просто SDK поставил. Буду читать документацию.
  • 0
Да, я такой!

#8 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 27 сентября 2004 - 22:30

Сдается мне, что ты неправильно запускаешь свое Java-приложение... Если она является у тебя частью пакета my.cool.app, то она должна лежать соответствующей в папке, например, в "C:\myjavacode\my\cool\app\" с именем MyApp.class, и запуск ее должен осуществляться из родительской папки (так, чтобы самм файл .class оказался в этой самой подпапке, в данном примере -- "C:\myjavacode") командой: java my.cool.app.MyApp . В общем, структура "пакетов" должна соответствовать относительной структуре каталогов на диске.

Конечно, проблема может быть и не в этом, но если этот вариант не пробовал, то попробуй... :)

Сообщение изменено: tomatensaft (27 сентября 2004 - 22:31 )

  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump

#9 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 13 октября 2004 - 15:43

сорр, что так поздно ответил... за 3 недели не мог сесть нормально за комп.
Значит так.
1) В 3.14зду все пакеты, мне бы с началами начал разобраться сначала. :)
2) Каталоги:
"E:/JAVA/My" - тут я своё ваяю
"E:/JAVA/Help/BE" - тут эл. версия книги г-на Эккеля, из поддиректорий которой я импортирую пакеты, классы и т.д.
Есть простейший пример - вывести дату на экран.
компилирую нормально(javac E:/JAVA/My/HelloDate.java), запускаю (java E:/JAVA/My/HelloDate) и усё как в первом посте.
SDK Переустановил, не помогает.
Ещё идеи есть?
  • 0
Да, я такой!

#10 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 13 октября 2004 - 17:01

Скопируй те пакеты, которые ты импортируешь, в папку с твоим добром (то бишь, в E:/JAVA/My, я так понимаю). Компилируй все и вся в одной папке. В противном случае, Java рассматривает структуру каталогов как пакеты, что тебе очевидно не нужно. Запускай программу такой командой: java HelloDate, обязательно из папки "E:/JAVA/My" (команда cd E:\JAVA\My).
  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump

#11 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 13 октября 2004 - 17:13

Спасибо, попробую.
А что, таким макаром вегда действовать надо?
То есть я скажем начну делать Адну Бальшую Праграмму, создаю для неё директорию и там уже иерархически всё по поддиректориям раскладывать(классы, библиотеки, пэкэджи и т.д)
А вот если мне надо будет библиотеку импортировать, то что, под каждую новую программу переписывать её в директорию? Бред какой то.. неужто в яве механизм импорта так не отлажен?
  • 0
Да, я такой!

#12 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 13 октября 2004 - 23:31

Когда начнешь писать эту свою А.Б.П., то узнаешь о том, что:

- Путь к библиотеке можно указать в переменной окружения CLASSPATH или в опции -classpath интерпретатора, и это почти эквивалентно копированию ее в папку с исходником твоей программы.

- Саму библиотеку можно положить в какую-то общую системную папку, которая уже есть в CLASSPATH

- Дабы эта библиотека занимала меньше места и состояла из минимального количества файлов, ее можно архивировать в JAR. Специально созданный .jar-файл с файлом-манифестом эквивалентен директории с файлами *.class.

Совет: не делай таких категоричных предположений (по поводу отлаженности импорта модулей), пока не раберешься до конца с предметом... ;)

Сообщение изменено: tomatensaft (13 октября 2004 - 23:33 )

  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump