не запускаются ява приложения

Модератор: Модераторы разделов

Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

не запускаются ява приложения

Сообщение ezheg »

стоит j2sdk1.4.2_0.4 + eclipse
фалы *.java компилируются прекрасно и в eclipse и просто из-под консоли,но запускаются почему-то только в eclipse,а если я пытаюсь запустить их из под консоли,выдает что-то вроде этого:

Код: Выделить всё

[piton@localhost HelloWorld]$ java ./HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: //HelloWorld

как исправить?
Спасибо сказали:
Аватара пользователя
Golden
Сообщения: 163
ОС: Ubuntu Linux 7.10

Re: не запускаются ява приложения

Сообщение Golden »

(piton3000 @ Monday, 30 August 2004, 13:24) писал(а):стоит j2sdk1.4.2_0.4 + eclipse
фалы *.java компилируются прекрасно и в eclipse и просто из-под консоли,но запускаются почему-то только в eclipse,а если я пытаюсь запустить их из под консоли,выдает что-то вроде этого:

Код: Выделить всё

[piton@localhost HelloWorld]$ java ./HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: //HelloWorld

как исправить?


$ java HelloWorld

Не стоит забывать, что мы указываем имя класса в пакетах Java, а не в каталогах ОС.

Если так не работает, попробуйте
$ java -cp . HelloWorld
(т.е. с добавлением текущего каталога в classpath)
Спасибо сказали:
Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Re: не запускаются ява приложения

Сообщение ezheg »

Вроде запахало, пасиб, хотя смысла я не понял. -_-
И это так надо будет в каждой новой директории с новым проектом делать?,поскольку потом можно просто запустить стандартно коммандой java имя_проекта
Спасибо сказали:
Аватара пользователя
aLexx programmer
Сообщения: 985
Статус: Турук-Макто
ОС: Gentoo -> Ubuntu

Re: не запускаются ява приложения

Сообщение aLexx programmer »

И это так надо будет в каждой новой директории с новым проектом делать?,поскольку потом можно просто запустить стандартно коммандой java имя_проекта

Да.
И не "java имя_проекта", а "java имя_файла_с_методом_main".
Конечно, иногда их имена совпадают, но не всегда (например, игра Checkers(Шашки), а запускать надо java Start, т.к. в файле Start.java находится метод main).
Спасибо сказали:
Аватара пользователя
Golden
Сообщения: 163
ОС: Ubuntu Linux 7.10

Re: не запускаются ява приложения

Сообщение Golden »

Если уж на то пошло, то когда у вас появится куча классов, у вас появится естественное желание запихнуть все в jar, которому прописывается автозапуск класса с main
В итоге всегда и везде будет работать команда
$ java <имя проекта>.jar
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: не запускаются ява приложения

Сообщение elide »

Если уж на то пошло, то когда у вас появится куча классов, у вас появится естественное желание запихнуть все в jar
я бы не сказал, что это естественно... в процессе распространения - да. но в процессе разработки, каждый раз при пересборке проекта перепаковывать джар - долго, а смысла никакого. а вот использовать механизм packages и настроить все среды класть классы в одну папку - это гуд. потому как ее просто прописать в CLASSPATH и на знать потом проблем.
слава роботам!
Спасибо сказали:
Deady
Сообщения: 25

Re: не запускаются ява приложения

Сообщение Deady »

рекомендую батник написать. типа start.bat (для win) или start.sh (lin).

вообще-то это очень полезная вещь, потому как если приложение большое, то оно будет использовать несколько разрозненных пакетов, а для этого нужно все в путях прописывать. вот пути в батнике заодно и прописываются.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: не запускаются ява приложения

Сообщение elide »

я использую другой подход: все пакеты кладутся в одно место, например в /opt/java/packages
этот путь пишется в classpath и все работает без лишних движений... среду надо настроить так, чтоб продукты компиляции клались туда же... ну и, разумеется, грамотно использовать пакеты...
иногда конечно запаривает писать что-то вроде 'java ru.rfei.elide.cms.tools.MyCMSConsole localhost:8080', за то я уверен, что все будет - как надо. пакеты рулят...
слава роботам!
Спасибо сказали: