|
4 / 4 / 0
Регистрация: 23.08.2011
Сообщений: 26
|
|
Запуск jar внутри приложения23.08.2011, 02:41. Показов 10335. Ответов 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 файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Программа предоставляет более. . .
|