Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запустить из cmd Java прогу, созданную в NetBeans, Не находит main класс. Не могу запустить 
V
    Опции темы
linuxoid
Дата 6.8.2011, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 17.4.2005

Репутация: нет
Всего: нет



Здравствуйте, коллеги!

У меня такой вопросик: я всегда делал Java программки в NetBeans. Оттуда же всегда нажимаю Run и все сразу успешно выполняется, т.е. проект компилируется без каких-либо проблем. Но сейчас появилась необходимость запустить некоторые аппликации через windows cmd. Если я создаю простейший HelloWorld.java с main методом в ручную, через notepad, то все отлично:

- Выполняем javac HelloWorld.java
- Далее java HelloWorld

Пример:

Код

public class HelloWorld {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println( "Welcome to Java Programming!" );
    }
}


Но проблема в том, что я хочу так же запустить проект, который был создан в NetBeans. Т.е. я захожу, к примеру, в "C:\Users\JUser\Documents\NetBeansProjects\HelloWorld\src\helloworld" через cmd

- Выполняем javac HelloWorld.java
- Далее java HelloWorld

Пример:

Код

package helloworld;

public class HelloWorld {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println( "Welcome to Java Programming!" );
    }
}


Результат:
Цитата


Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: helloworld/HelloWorld)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: HelloWorld.  Program will exit.



Вопрос: как запустить через cmd проект, который был создан в NetBeans.

PM MAIL   Вверх
elvis79
Дата 6.8.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 13.11.2008
Где: Украина, Ивано-Фр анковск

Репутация: нет
Всего: нет



NetBeans по-умолчанию создает пакеты 

Код

package helloworld;
....


А значит, надо запускать из пакета:

[MyProject]
-- [helloworld]
-----helloword.java
-----helloworld.class

Код

C:\MyProject\>java helloworld/helloword


Добавлено через 1 минуту и 44 секунды
Или убрать пакет (не знаю разрешить ли IDE, можно и в блокноте) и скомпилировать без пакета
PM MAIL WWW ICQ Jabber   Вверх
linuxoid
Дата 6.8.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 17.4.2005

Репутация: нет
Всего: нет



Гениально! Спасибо!

P.S. запустилось отсюда:

Цитата


C:\Users\JUser\Documents\NetBeansProjects\HelloWorld\src>dir
 Volume in drive C has no label.
 Volume Serial Number is 78B3-4116

 Directory of C:\Users\JUser\Documents\NetBeansProjects\HelloWorld\src

06.08.2011  11:00    <DIR>          .
06.08.2011  11:00    <DIR>          ..
06.08.2011  11:03    <DIR>          helloworld
               0 File(s)              0 bytes
               3 Dir(s)   1 424 871 424 bytes free

C:\Users\JUser\Documents\NetBeansProjects\HelloWorld\src>java helloworld/HelloWorld
Welcome to Java Programming!

C:\Users\JUser\Documents\NetBeansProjects\HelloWorld\src>




Это сообщение отредактировал(а) linuxoid - 6.8.2011, 15:37
PM MAIL   Вверх
Aellipsis
Дата 10.10.2011, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.10.2011

Репутация: нет
Всего: нет



У меня получается запустить консольное приложение с кодом
Код

package MyPackage;

public class MyClass 
{
    public static void main(String[] arguments)
    {
        System.out.println("123");
    }
}

Соответственно запуск:
1)переход на ИмяПриложения\build\classes
2)java MyPackage/MyClass

Но с десктопным приложением так не получается.
Я делаю так. File-> new project ->java desktop application, имя temp
Соответственно в пакете temp находится main:


Код

package temp;

public class TempApp extends SingleFrameApplication {
    public static void main(String[] args) {
        launch(TempApp.class, args);
    }
}



Делаю все аналогично консольному приложению.
1)переход на temp\build\classes
2)java temp/TempApp
и получаю java.lang.NoClassDefFoundError как автор.
PM MAIL   Вверх
Skipy
Дата 11.10.2011, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16



Цитата(Aellipsis @ 10.10.2011,  21:54)
2)java temp/TempApp
и получаю java.lang.NoClassDefFoundError как автор.

http://www.skipy.ru/technics/likbez.html


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
Aellipsis
Дата 15.10.2011, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.10.2011

Репутация: нет
Всего: нет



Почитал, для консольного приложения, созданного в netbeans выполняется:
Код

java -classpath ./build/classes MyPackage.MyClass

а для десктопного нет:
Код

java -classpath ./build/classes tempgui.TempGUIApp


PM MAIL   Вверх
math64
Дата 15.10.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Чтобы запускать приложение не из NetBeans, советую создать jar файл, в меню есть пункт "Построить проект" и "Очистить и построить проект" вместо "Запустить проект".
Тогда в папке проекта создастся папка dist, в ней основной jar файл, папка lib с jar необходимых библиотек или пустой и readme.txt, описывающий как это запустить:
java -jar "<имя файла>.jar"
PM   Вверх
Aellipsis
Дата 15.10.2011, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.10.2011

Репутация: нет
Всего: нет



math64, Спасибо. Но все-таки хотелось бы узнать почему с *.class не работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0826 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.