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

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

23.08.2011, 02:41. Показов 10335. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru