Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26

Запуск jar внутри приложения

23.08.2011, 02:41. Показов 10378. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, недавно начал изучать java и столкнулся с проблемой, надеюсь здесь мне помогут Необходимо запустить jar внутри приложения.
P.S. Пробовал "Runtime.getRuntime().exec", запускает как новое окно..
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2011, 02:41
Ответы с готовыми решениями:

Jar внутри jar
Можно ли сохранить jar внутри другого jar и использовать его? Нужно опять же для драйвера базы данных чтобы всё в одном архиве было. Поиск...

Редактирования .class внутри .jar
Привет. Есть программа в формате jar для windows, при запуске программы идет проверка привязки к серийному hdd, после замены hdd приложение...

Запуск файлов Jar
Добрый день. Раньше я писал коды на NetBeans IDE седьмой версии. Чтобы запускать мою работу в консольке приходилось создавать батник в ...

15
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
23.08.2011, 06:44
Цитата Сообщение от c0lumb Посмотреть сообщение
Необходимо запустить jar внутри приложения.
Что означает сия фраза? Ты хочешь запустить другое приложение? Или тебя интересует как вызвать статический метод main(String[]), который запускает приложение?
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
23.08.2011, 13:13  [ТС]
Цитата Сообщение от aleksandy Посмотреть сообщение
Что означает сия фраза? Ты хочешь запустить другое приложение? Или тебя интересует как вызвать статический метод main(String[]), который запускает приложение?
Другое приложение.
0
 Аватар для Skipy
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
 Аватар для Skipy
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. В необходимом для запуска приложении тоже нету/незаполнен манифест.
Вложения
Тип файла: rar test.rar (1.3 Кб, 43 просмотров)
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
23.08.2011, 18:50
Цитата Сообщение от c0lumb Посмотреть сообщение
P.S. В необходимом для запуска приложении тоже нету/незаполнен манифест.
А как Вы собираетесь вызывать приложение, если не знаете, какой у него основной класс?

Вообще фраза "запустить 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
Если имя класса заранее известно, то достаточно тупого
Java
1
YourClass.main(new String[] {});
Только jar-ка должна быть в classpath-е
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
24.08.2011, 13:27  [ТС]
Я понимаю что Вам все это легко, но я то не сталкивался с подобным ранее... Распишите пжлста полностью как подключать и запускать
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
24.08.2011, 14:02
Цитата Сообщение от c0lumb Посмотреть сообщение
Распишите пжлста полностью как подключать и запускать
Как включить jar в classpath у Skipy на сайте описано более, чем подробно. А вот насчет запускать... Я же тебе уже разжевал как это сделать.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
24.08.2011, 14:38
Цитата Сообщение от c0lumb Посмотреть сообщение
В обоих случаях известен основной (main) класс, для test.jar - test.class (net.test.test.class).
Кому известен?

Я беру test.jar. Там несколько классов. Как я определю, какой из них запускать?
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
24.08.2011, 15:01  [ТС]
Закинул test.java в package вместе с основным приложением и запустил командой:
test.main(new String[] {});
Открытие произошло как отдельного приложения, а это не то что мне нужно... Может я в чем-то ошибся?

Добавлено через 13 минут
Цитата Сообщение от Skipy Посмотреть сообщение
Кому известен?

Я беру test.jar. Там несколько классов. Как я определю, какой из них запускать?
Там только один класс оО
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
24.08.2011, 16:38
Цитата Сообщение от c0lumb Посмотреть сообщение
Открытие произошло как отдельного приложения, а это не то что мне нужно...
А что именно Вы тогда хотели? Естественно, это будет выглядеть как запуск отдельного приложения. Но запускаться это будет в той же VM.


Там только один класс оО
Тогда об этом надо говорить специально. jar содержит единственный класс, который и надо запустить.
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
26.08.2011, 17:49  [ТС]
Необходимо запустить jar внутри приложения.
P.S. Пробовал "Runtime.getRuntime().exec", запускает как новое окно..
Я и имел ввиду запуск приложения внутри фрейма, должен быть какой-то способ..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2011, 17:49
Помогаю со студенческими работами здесь

Запуск jar-файла
Скажите плииз, почему напрочь не выполняется класс из jar-файла???? Вот, собственно содержание Jar-архива: C:\Users\user\jar tf...

Запуск jar на исполнение
Возникла следующая трудность: Пакую программу в jar, запускаю с командной строки как java -jar File.jar программа отлично запускается) ...

Запуск .Jar файла
добрый день программисты создал проект который заносит, считывает, удаляет данные из SQL. Когда я выполняю проект все компилируется и...

Запуск jar файла
Здравствуйте. Кто-нибудь может подсказать, что делать, если при попытке запуска jar файла (как двойным щелчком,так и из командной строки)...

Проверка наличия пакета внутри jar файла
Доброго времени суток. Есть Jar файл с исходниками и мне нужно сделать проверку на наличие пакета(папки) в нем. Возможно ли такое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
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. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru