Запустите приложение RCP из main () - PullRequest
5 голосов
/ 09 марта 2012

Я знаю, что можно экспортировать мое приложение rcp, создать файл .exe и запустить его с помощью команды "Runtime.getRuntime (). Exec ()", но я бы хотел запустить мое приложение rcp из основного метода класса Java без создания и вызова exe. это возможно?

Ответы [ 3 ]

5 голосов
/ 10 марта 2012

Я не уверен, что это действительно полезно для вас, это зависит от того, почему вам нужно запустить другое приложение, но в любом случае ...

Я бы прочитал вики-страницу о Демонстрационная модель приложения Equinox , которая демонстрирует, как можно использовать службу OSGi Application Admin для управления приложением. Вы можете получить код из CVS, как описано там. Вы также можете проверить код в классе org.eclipse.equinox.internal.app.AppCommands, а именно в методе _startApp(), который также запускает уже определенное приложение и является реализацией команды "startApp" в консоли OSGi.

Обратите внимание, что вам может потребоваться настроить способ запуска экземпляра Eclipse, из которого вы хотите запустить другое приложение (например, параметр среды исполнения eclipse.application.registerDescriptors см. Страницу справки ).

Надеюсь, это поможет!

2 голосов
/ 23 апреля 2013

Просто создайте ветвь пакета org.eclipse.equinox.launcher, у которого есть класс Main со статической функцией main (она же точка входа), которая делегирует функции run. Вы можете создать подкласс для перезаписи функции запуска и делать то, что вы хотите.

2 голосов
/ 12 марта 2012

Если у вас уже запущена OSGi, ответ от @Urbi правильный.Если вам также нужно запустить OSGi, будьте осторожны, если вы делаете это из своего собственного основного потока - т.е. из исходного потока вашего приложения - поскольку SWT в противном случае не будет работать должным образом на всех платформах.org.eclipse.core.runtime.adaptor.EclipseStarter способ запуска OSGi и вашего приложения.

...