Не запускается простое java-приложение
От: Gog  
Дата: 17.06.08 14:09
Оценка:
Добрый день.

Написал простое java приложение с помощью Intellij Idea 7 — формочка, несколько компонентов и небольшая логика.

Из Идеи все очень неплохо работает, но если забилдить и запустить, то вылетают исключения, (похоже) связанные с компонентами.

вот текст батника

set cclasspath=%CLASSPATH%;.
java -cp PushReview.jar Main

Вылетает NullPointerException in thread "main"
at Forms.MainForm.<init>(unknown source)
at Main.main(unknown source)

Вот текст класса Main

public class Main {

public static void main (String []args) {

System.out.println("m1");
JFrame frame = new JFrame();
System.out.println("m2");
MainForm form = new MainForm();
System.out.println("m3");
frame.getContentPane().add(form.getPanel());
System.out.println("m4");
frame.setSize(800, 500);
frame.setVisible(true);

}
}

Вот конструктор класса MainForm

public MainForm() {
System.out.println("A1");
panelResults.setVisible(false);
System.out.println("A2");
buttonCount.addActionListener (new ActionListener() {
public void actionPerformed (ActionEvent ev) {
proceedCount();
}
});
System.out.println("A3");
}

При запуске выводится на экран
m1
m2
A1

Если закоментировать
panelResults.setVisible(false); в конструкторе класса MainForm, то будет
m1
m2
A2
a
Re: Не запускается простое java-приложение
От: Gog  
Дата: 17.06.08 19:39
Оценка:
Кажется понял почему вылетает исключение.

Там у меня форма а на ней куча компонентов. При запуске из Идеи жти компоненты создаются сами, а если запускать батник, то он думает, что все они равны null, т. к. нигде не прописано ничего типа
panelResults = new JPanel();
идет сразу ображение к методам объекта panelResults.

Интересно, почему из Идеи работает, а из батника нет. Может чего-то прописать надо еще...
Re[2]: Не запускается простое java-приложение
От: Cyberax Марс  
Дата: 17.06.08 20:37
Оценка:
Здравствуйте, Gog, Вы писали:

Gog>Интересно, почему из Идеи работает, а из батника нет. Может чего-то прописать надо еще...

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

Варианта два:
1) В настройках IDEA ("Settings -> GUI Designer") поставить "Generate GUI into:" в "Java Source" (и перекомпилировать всё).
2) Использовать для постройки Ant и IDEA Ant Task: http://www.intellij.org/twiki/bin/view/Main/IntelliJUIDesignerFAQ
Sapienti sat!
Re[3]: Не запускается простое java-приложение
От: Gog  
Дата: 18.06.08 20:42
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Варианта два:

C>1) В настройках IDEA ("Settings -> GUI Designer") поставить "Generate GUI into:" в "Java Source" (и перекомпилировать всё).
Я сделал так.

В файлах появился метод
private void $$$setupUI$$$() {...........}
но там com.intellij.uiDesigner.core подсвечены красным цветом и компиляция не проходит

C>2) Использовать для постройки Ant и IDEA Ant Task: http://www.intellij.org/twiki/bin/view/Main/IntelliJUIDesignerFAQ

К сожалению не умею пользоваться антами. Попробовал скопировать, что там написано к себе в ант, но почти все строчки красные
Re[4]: Не запускается простое java-приложение
От: Cyberax Марс  
Дата: 19.06.08 00:13
Оценка:
Здравствуйте, Gog, Вы писали:

Gog>В файлах появился метод

Gog>private void $$$setupUI$$$() {...........}
Всё правильно.

Gog>но там com.intellij.uiDesigner.core подсвечены красным цветом и компиляция не проходит

Нужно добавить в classpath библиотеку Jetbrains/IntelliJ IDEA 7.0.3/redist/forms_rt.jar

C>>2) Использовать для постройки Ant и IDEA Ant Task: http://www.intellij.org/twiki/bin/view/Main/IntelliJUIDesignerFAQ

Gog>К сожалению не умею пользоваться антами. Попробовал скопировать, что там написано к себе в ант, но почти все строчки красные
Ну тогда сначала надо прочитать доку по нему.
Sapienti sat!
Re: Не запускается простое java-приложение
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 19.06.08 10:45
Оценка: 1 (1) +1
В срочном порядке откладываем IDEA и берем в руки блокнот и командную строку. Делаем два простейших приложений — одно содержит класс, который используется во втором. Его упаковываем в jar-файл. Во втором приложении используем полученный jar-файл.
http://jvmmemory.com — простой способ настройки JVM
Re[5]: Не запускается простое java-приложение
От: Gog  
Дата: 14.07.08 17:47
Оценка:
Здравствуйте, Cyberax, Вы писали:

Gog>>но там com.intellij.uiDesigner.core подсвечены красным цветом и компиляция не проходит

C>Нужно добавить в classpath библиотеку Jetbrains/IntelliJ IDEA 7.0.3/redist/forms_rt.jar

C>>>2) Использовать для постройки Ant и IDEA Ant Task: http://www.intellij.org/twiki/bin/view/Main/IntelliJUIDesignerFAQ

Gog>>К сожалению не умею пользоваться антами. Попробовал скопировать, что там написано к себе в ант, но почти все строчки красные
C>Ну тогда сначала надо прочитать доку по нему.

Какое-то время я был занят другими делами, но теперь снова возникла необходимость в этом приложении. Немного поэкспериментируя, у меня получилось запустить, вот алгоритм моих действий.
1. запускаю ant-файл, создается Jar, но он не работает, т. к. нету com.intellij.uiDesigner.core
2. Я переименовываю jar в zip
3. запихиваю папку com.intellij.uiDesigner.core (разархивированный forms_rt.jar) в этот zip-файл
4. переименовываю zip обратно в jar

Теперь jar работает !!!!

Но, посмотрите, каким извратом мне приходится заниматься. Это намного лучше, чем было, ведь мне приходилось запускать Идею, а оттуда запускать приложение, но все равно от пунктов 2-4 надо как-то избавиться, все-так при постоянных ребилдах это неудобно.

То, как вы пишите — добавить forms_jt.jar в classpath — так не работает, именно поэтому я придумал, как сделать через одно место.

Или может я что-то не так сделал.
У меня в папке 3 файла. — Jar-файл, bat-файл и forms_jt.jar
Содержимое bat-Файла

set CLASSPATH=%CLASSPATH%
set CLASSPATH=%CLASSPATH%;E:\Program Files (x86)\Java\jdk1.6.0_02\jre\lib
set CLASSPATH=%CLASSPATH%;forms_jt.jar

java -cp Review.jar Main -classpath %CLASSPATH%

Это не работает.
Если убрать -classpath %CLASSPATH% из последней строчки, то вылетает та же самая ошибка — java.Lang.NoClassDefFoundError: com.intellij.uiDesigner.core/Spacer

Т. е. оно не видит classpath, или не подключает его или еще что...
Re[6]: Не запускается простое java-приложение
От: dotidot Россия  
Дата: 15.07.08 13:38
Оценка:
Здравствуйте, Gog, Вы писали:

Тяжелый случай.
Gog>У меня в папке 3 файла. — Jar-файл, bat-файл и forms_jt.jar
Gog>Содержимое bat-Файла
Gog>set CLASSPATH=%CLASSPATH%
зачем это?
Gog>set CLASSPATH=%CLASSPATH%;E:\Program Files (x86)\Java\jdk1.6.0_02\jre\lib
это имело бы смысл если бы там были class файлы, но там только jar файлы, они таким образом в classpath не добавятся.
Gog>set CLASSPATH=%CLASSPATH%;forms_jt.jar

Gog>java -cp Review.jar Main -classpath %CLASSPATH%

жжуть какая-то. Вы два раза один и тот же по сути аргумент указали

попробуйте так(если Main находиться в default package):
java -cp forms_jt.jar;Review.jar Main

при этом батник вам не нужен.
Учитесь работать с cli, читайте мануалы. Методом ненаучного тыка обычно только в пальцы в розетку засовываются.
Для подобных ситуаций один хороший человек написал несколько статей про основы явы. Вот основная:
http://skipy.ru/technics/likbez.html
Вам это читать обязательно. Успехов.
Re[7]: Не запускается простое java-приложение
От: Gog  
Дата: 15.07.08 15:11
Оценка:
Здравствуйте, dotidot, Вы писали:

D>Здравствуйте, Gog, Вы писали:


D>Тяжелый случай.

Gog>>У меня в папке 3 файла. — Jar-файл, bat-файл и forms_jt.jar
Gog>>Содержимое bat-Файла
Gog>>set CLASSPATH=%CLASSPATH%
D>зачем это?
Gog>>set CLASSPATH=%CLASSPATH%;E:\Program Files (x86)\Java\jdk1.6.0_02\jre\lib
D>это имело бы смысл если бы там были class файлы, но там только jar файлы, они таким образом в classpath не добавятся.
Gog>>set CLASSPATH=%CLASSPATH%;forms_jt.jar

Gog>>java -cp Review.jar Main -classpath %CLASSPATH%

D>жжуть какая-то. Вы два раза один и тот же по сути аргумент указали

D>попробуйте так(если Main находиться в default package):

D>java -cp forms_jt.jar;Review.jar Main

D>при этом батник вам не нужен.

D>Учитесь работать с cli, читайте мануалы. Методом ненаучного тыка обычно только в пальцы в розетку засовываются.
D>Для подобных ситуаций один хороший человек написал несколько статей про основы явы. Вот основная:
D>http://skipy.ru/technics/likbez.html
D>Вам это читать обязательно. Успехов.

Спасибо, что ответили, но я уже сам нашел решение "методом ненаучного тыка".

В общем это выглядит очень похоже на то, что написали вы
java -classpath Review.jar;forms_jt.jar Main

Ну зачем столько сложностей. Какие-то анты, батники...
Почему создатели Идеи не могли сделать так, чтобы все это создавалось само собой.
Там есть generate ant, но этот ant не собирает jar файл, пришлось разбираться, что и куда надо прописывать.
Потом этот бат-файл, куда пишется в какой-то последовательности несколько аргументов и если что-то не так написано, то ничего работать не будет.
Я по жизни программировал на C/C++, Java ME, Java SE, но никогда не был серьезным специалистом ни в одном направлении, и такого рода вопросы (как в этом топике) решались с чьей-то помощью. А когда никого не оказалось рядом и пришлось самому сделать с нуля, оказалось, что есть проблемы, т. к. я чего-то не знаю и надо это дело как-то где-то узнавать.
Хорошо, что существуют форумы и методы ненаучного тыка
Re[8]: Не запускается простое java-приложение
От: Protey Россия  
Дата: 16.07.08 05:55
Оценка:
Здравствуйте, Gog, Вы писали:
Gog>Ну зачем столько сложностей. Какие-то анты, батники...
Gog>Почему создатели Идеи не могли сделать так, чтобы все это создавалось само собой.
Gog>Там есть generate ant, но этот ant не собирает jar файл, пришлось разбираться, что и куда надо прописывать.
Gog>Потом этот бат-файл, куда пишется в какой-то последовательности несколько аргументов и если что-то не так написано, то ничего работать не будет.
Gog>Я по жизни программировал на C/C++, Java ME, Java SE, но никогда не был серьезным специалистом ни в одном направлении, и такого рода вопросы (как в этом топике) решались с чьей-то помощью. А когда никого не оказалось рядом и пришлось самому сделать с нуля, оказалось, что есть проблемы, т. к. я чего-то не знаю и надо это дело как-то где-то узнавать.
Gog>Хорошо, что существуют форумы и методы ненаучного тыка

Очевидно, что с таким подходом Никсы вам не осилить никогда.
Re[9]: Не запускается простое java-приложение
От: Gog  
Дата: 16.07.08 11:56
Оценка:
Здравствуйте, Protey, Вы писали:

P>Здравствуйте, Gog, Вы писали:

Gog>>Ну зачем столько сложностей. Какие-то анты, батники...
Gog>>Почему создатели Идеи не могли сделать так, чтобы все это создавалось само собой.
Gog>>Там есть generate ant, но этот ant не собирает jar файл, пришлось разбираться, что и куда надо прописывать.
Gog>>Потом этот бат-файл, куда пишется в какой-то последовательности несколько аргументов и если что-то не так написано, то ничего работать не будет.
Gog>>Я по жизни программировал на C/C++, Java ME, Java SE, но никогда не был серьезным специалистом ни в одном направлении, и такого рода вопросы (как в этом топике) решались с чьей-то помощью. А когда никого не оказалось рядом и пришлось самому сделать с нуля, оказалось, что есть проблемы, т. к. я чего-то не знаю и надо это дело как-то где-то узнавать.
Gog>>Хорошо, что существуют форумы и методы ненаучного тыка

P>Очевидно, что с таким подходом Никсы вам не осилить никогда.


Если захочется, то осилю. Если под никсами вы имеете ввиду Unix, то я работал под QNX, программировал там на C

А вообще надобности такой нету. И желания тоже (а это самое главное).
Re[10]: Не запускается простое java-приложение
От: Protey Россия  
Дата: 17.07.08 03:54
Оценка:
Здравствуйте, Gog, Вы писали:

Gog>Если захочется, то осилю. Если под никсами вы имеете ввиду Unix, то я работал под QNX, программировал там на C

Gog>А вообще надобности такой нету. И желания тоже (а это самое главное).

Ваши цитаты

Gog>>>Ну зачем столько сложностей. Какие-то анты, батники...

Gog>>>Почему создатели Идеи не могли сделать так, чтобы все это создавалось само собой.
Gog>>>Потом этот бат-файл, куда пишется в какой-то последовательности несколько аргументов и если что-то не так написано, то ничего работать не будет.

говорят о том, что в идеологию джавы, хотя вы и писали на ней не вьехали. Это хуже чем "нет желания".
Re[11]: Не запускается простое java-приложение
От: Gog  
Дата: 17.07.08 16:02
Оценка:
Здравствуйте, Protey, Вы писали:

P>Здравствуйте, Gog, Вы писали:


Gog>>Если захочется, то осилю. Если под никсами вы имеете ввиду Unix, то я работал под QNX, программировал там на C

Gog>>А вообще надобности такой нету. И желания тоже (а это самое главное).

P>Ваши цитаты


Gog>>>>Ну зачем столько сложностей. Какие-то анты, батники...

Gog>>>>Почему создатели Идеи не могли сделать так, чтобы все это создавалось само собой.
Gog>>>>Потом этот бат-файл, куда пишется в какой-то последовательности несколько аргументов и если что-то не так написано, то ничего работать не будет.

P>говорят о том, что в идеологию джавы, хотя вы и писали на ней не вьехали. Это хуже чем "нет желания".


Насколько я знаю суть Java в том, что это мультиплатформенный язык, т. е. код должен работать везде, куда можно поставить виртуальную машину, а вопрос совместимости с устройствами и платформами — это работа разработчиков виртуальной машины, которая является интерпритатором для приложения java.

Кстати, вопрос к вам. Почему, когда эта тема висела и у меня были реальные сложности, что что-то не работает и я не знаю, что делать, вы здесь ни разу не написали. А когда я вопрос решил (с помощью некоторых форумчан, давших мне ценные советы), вы зачем-то стали здесь флудить.
Re[12]: Не запускается простое java-приложение
От: Protey Россия  
Дата: 18.07.08 06:05
Оценка:
Здравствуйте, Gog, Вы писали:

P>>говорят о том, что в идеологию джавы, хотя вы и писали на ней не вьехали. Это хуже чем "нет желания".


Gog>Насколько я знаю суть Java в том, что это мультиплатформенный язык, т. е. код должен работать везде, куда можно поставить виртуальную машину, а вопрос совместимости с устройствами и платформами — это работа разработчиков виртуальной машины, которая является интерпритатором для приложения java.


Прально. Для пущего счастья остается понять, что есть ещё и интерпретатор java кода, который имеет свои параметры для запуска.
CLASSPATH там не просто так прибит, а даёт возможность сложить библиотеки куданибудь в отдельный каталог и обновлять их в дальнейшем без пересборки всего приложения.

Gog>Кстати, вопрос к вам. Почему, когда эта тема висела и у меня были реальные сложности, что что-то не работает и я не знаю, что делать, вы здесь ни разу не написали. А когда я вопрос решил (с помощью некоторых форумчан, давших мне ценные советы), вы зачем-то стали здесь флудить.


Ответ банален — на форуме меня в этот момент времени не было. Фраза же "... бат-файл, куда пишется в какой-то последовательности несколько аргументов и если что-то не так написано, то ничего работать не будет." меня ввела в некоторый диссонанс.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.