![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| leonidv |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.9.2007 Репутация: нет Всего: нет |
Привет всем!
я впринципе в java новичек есть такая проблема как запусть java приложение из С файла откомпилированого в exe проблемма в том что после запуска JVM и вызова main() метода и выполнения его, все закрываеться юзал поиск ничего дельного не нашел вот код java
вот код С
|
||||
|
|||||
| ivg |
|
||||||||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Как узнали что метод main() выполняется? В консоли появилась строка:
если да, то там же должно появиться что вроде этого:
Вы ожидаете, что вот эта строка
усыпит поток, но это не так, надо:
|
||||||||
|
|||||||||
| leonidv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.9.2007 Репутация: нет Всего: нет |
да и никаких ошибок не появилось по полводу Thread.currentThread().wait(1000); согласен вообще идея была сделать GUI приложение а не этот простои пример он впринципе и так работает были идеии сделать через jint AttachCurrentThread(JavaVM *vm, void **penv,void *args); но насколько я понял это просто добавляет еще один поток, поправьте если не прав |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Вариант с запуском java из .bat файла не рассматривали? Не устраивает?
Вариант запуска java.exe из .exe как отдельный процесс? Или нужно именно в ваш процесс грузить jvm.dll? |
|||
|
||||
| leonidv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.9.2007 Репутация: нет Всего: нет |
ну вообще из *.bat файля я делал мне интересно сделать чтоб именно из exe запускался,
вариант с программами типа exe4j я не рассматриваю потомучто интересно сделать это самому а про запуск java.exe из exe можно по подробнее? |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Чисто академический интерес? Ну это вам лучше в форуме C/C++ по WinAPI спросить как запустить отдельный процесс из своего кода, просто в качестве командной строки нового процесса указываете строку какую вы бы набирали в консоли для запуска вашего java приложения. Что же касается загрузки jvm.dll в ваш процесс, тем более раз академический интерес, скачайте исходники JDK и посмотрите как релизована на C/C++ java.exe или javaw.exe ну или другой код, который OpenSource и запускает из .exe java приложения. |
|||
|
||||
| leonidv |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.9.2007 Репутация: нет Всего: нет |
ну интерес больше акадкмический чем практический потомучто мне кажеться наиболее удобным использовать *.jar в таких случаях но с exe как то более привычно
ну по идее в моем примере jvm.dll и так используеться потомучто после компиляции C файла он не будет работать без указания расположения jvm.dll в переменной PATH или наличая его в тойже папке(вариант c тойже папкой не проверял) |
||||
|
|||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Исходники java-launcher'а поставляются с jdk. Думаю, понятно - для каких целей. Вы их смотрели?
-------------------- ![]() ![]() |
|||
|
||||
| leonidv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.9.2007 Репутация: нет Всего: нет |
да смотрел, но нечего интересного я не нашел виртуальная машина запускаеться в конечном итоге также как и в моем примере
я думаю что дело в опциях при инициализации jvm |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Да ну? Где же тогда в вашем коде вызов DestroyJavaVM? -------------------- ![]() ![]() |
|||
|
||||
| leonidv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.9.2007 Репутация: нет Всего: нет |
да действительно работает
не думал что DestroyJavaVM() сиграет такую важную роль пасибо за подсказку |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Надо не думать, а соображать
Это сообщение отредактировал(а) w1nd - 29.11.2007, 01:01 -------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |