4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
1

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

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

Здравствуйте, недавно начал изучать java и столкнулся с проблемой, надеюсь здесь мне помогут Необходимо запустить jar внутри приложения.
P.S. Пробовал "Runtime.getRuntime().exec", запускает как новое окно..
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2011, 02:41
Ответы с готовыми решениями:

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

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

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

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

15
633 / 525 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
23.08.2011, 06:44 2
Цитата Сообщение от c0lumb Посмотреть сообщение
Необходимо запустить jar внутри приложения.
Что означает сия фраза? Ты хочешь запустить другое приложение? Или тебя интересует как вызвать статический метод main(String[]), который запускает приложение?
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
23.08.2011, 13:13  [ТС] 3
Цитата Сообщение от aleksandy Посмотреть сообщение
Что означает сия фраза? Ты хочешь запустить другое приложение? Или тебя интересует как вызвать статический метод main(String[]), который запускает приложение?
Другое приложение.
0
2000 / 1423 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
23.08.2011, 16:18 4
Ну найдите в этом 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  [ТС] 5
Поподробнее пжлста:
1. Как загрузить.
2. Как запустить.
С уважением "чайник".
0
2000 / 1423 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
23.08.2011, 16:39 6
Куда уж подробнее?

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  [ТС] 7
Был бы очень признателен за пример кода вызывающий приложение (test.jar)
P.S. В необходимом для запуска приложении тоже нету/незаполнен манифест.
Вложения
Тип файла: rar test.rar (1.3 Кб, 40 просмотров)
0
2000 / 1423 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
23.08.2011, 18:50 8
Цитата Сообщение от 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  [ТС] 9
В обоих случаях известен основной (main) класс, для test.jar - test.class (net.test.test.class).
Выражаюсь я не правильно потому что привык к другим языкам программирования
P.S. Мне и не нужен запуск по двойному клику мышки..
0
633 / 525 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
24.08.2011, 07:20 10
Если имя класса заранее известно, то достаточно тупого
Java
1
YourClass.main(new String[] {});
Только jar-ка должна быть в classpath-е
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
24.08.2011, 13:27  [ТС] 11
Я понимаю что Вам все это легко, но я то не сталкивался с подобным ранее... Распишите пжлста полностью как подключать и запускать
0
633 / 525 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
24.08.2011, 14:02 12
Цитата Сообщение от c0lumb Посмотреть сообщение
Распишите пжлста полностью как подключать и запускать
Как включить jar в classpath у Skipy на сайте описано более, чем подробно. А вот насчет запускать... Я же тебе уже разжевал как это сделать.
0
2000 / 1423 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
24.08.2011, 14:38 13
Цитата Сообщение от 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  [ТС] 14
Закинул test.java в package вместе с основным приложением и запустил командой:
test.main(new String[] {});
Открытие произошло как отдельного приложения, а это не то что мне нужно... Может я в чем-то ошибся?

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

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


Там только один класс оО
Тогда об этом надо говорить специально. jar содержит единственный класс, который и надо запустить.
0
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
26.08.2011, 17:49  [ТС] 16
Необходимо запустить jar внутри приложения.
P.S. Пробовал "Runtime.getRuntime().exec", запускает как новое окно..
Я и имел ввиду запуск приложения внутри фрейма, должен быть какой-то способ..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2011, 17:49

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

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

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

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

Запуск jar файлов в windows
Создаю HelloWorld в NetBeans. Отдельно Jar файл могу запустить только батником start java -jar...

Запуск jar файла на Mac os
Доброго времени суток! Уже второй день пытаюсь запустить jar файл через терминал. Пробовал...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.