|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
Запуск jar внутри приложения23.08.2011, 02:41. Показов 10378. Ответов 15
Метки нет (Все метки)
Здравствуйте, недавно начал изучать java и столкнулся с проблемой, надеюсь здесь мне помогут
Необходимо запустить jar внутри приложения.P.S. Пробовал "Runtime.getRuntime().exec", запускает как новое окно..
0
|
|
| 23.08.2011, 02:41 | |
|
Ответы с готовыми решениями:
15
Jar внутри jar Редактирования .class внутри .jar Запуск файлов Jar |
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||
| 23.08.2011, 06:44 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
| 23.08.2011, 13:13 [ТС] | |
|
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 23.08.2011, 16:18 | |
|
Ну найдите в этом jar /META-INF/manifest.mf, разберите, получите main class, загрузите main class, найдите у него public static void main(String[]) и вызовите. Всего делов-то.
1
|
|
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
| 23.08.2011, 16:35 [ТС] | |
|
Поподробнее пжлста:
1. Как загрузить. 2. Как запустить. С уважением "чайник".
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 23.08.2011, 16:39 | |
|
Куда уж подробнее?
1. Получаете у загрузчика ресурсы /META-INF/manifest.mf в виде Enumeration<URL>, по URL определяете нужный jar 2. Вычитываете ресурс, получаете из него атрибут Main-Class 3. Загружаете этот класс по имени - Class.forName 4. Ищете метод main - getDeclaredMethod 5. Вызываете найденный метод через invoke
1
|
|
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
| 23.08.2011, 16:50 [ТС] | |
|
Был бы очень признателен за пример кода вызывающий приложение (test.jar)
P.S. В необходимом для запуска приложении тоже нету/незаполнен манифест.
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 23.08.2011, 18:50 | ||
|
Вообще фраза "запустить jar", насколько я понимаю, для пользователей windows означает "запустить приложение, кликнув два раза на jar". Так вот, для этого в jar ДОЛЖЕН БЫТЬ манифест. Не будет - не запустится. Именно из этого требования я и исходил. А в общем случае задача не решается. Разве что перебрать всё содержимое этого jar, попытаться загрузить ВСЕ найденные классы, и у всех искать main. Если будет несколько - всё, мы опять в тупике. P.S. Ваш test.jar в общем случае не является приложением, т.к. у него не указана точка входа. И потому его запустить нельзя.
0
|
||
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
| 23.08.2011, 19:10 [ТС] | |
|
В обоих случаях известен основной (main) класс, для test.jar - test.class (net.test.test.class).
Выражаюсь я не правильно потому что привык к другим языкам программирования ![]() P.S. Мне и не нужен запуск по двойному клику мышки..
0
|
|
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||||||
| 24.08.2011, 07:20 | ||||||
|
Если имя класса заранее известно, то достаточно тупого
0
|
||||||
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
| 24.08.2011, 13:27 [ТС] | |
|
Я понимаю что Вам все это легко, но я то не сталкивался с подобным ранее... Распишите пжлста полностью как подключать и запускать
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 24.08.2011, 14:38 | ||
|
Я беру test.jar. Там несколько классов. Как я определю, какой из них запускать?
0
|
||
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
||
| 24.08.2011, 15:01 [ТС] | ||
|
Закинул test.java в package вместе с основным приложением и запустил командой:
test.main(new String[] {}); Открытие произошло как отдельного приложения, а это не то что мне нужно... Может я в чем-то ошибся? Добавлено через 13 минут
0
|
||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|||
| 24.08.2011, 16:38 | |||
0
|
|||
|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
||
| 26.08.2011, 17:49 [ТС] | ||
0
|
||
| 26.08.2011, 17:49 | |
|
Помогаю со студенческими работами здесь
16
Запуск jar-файла Запуск jar на исполнение Запуск .Jar файла Запуск jar файла Проверка наличия пакета внутри jar файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|