2013-10-03 4 views
0

У меня есть файл jar, A.jar, который содержит среди различных библиотечных функций класс с методом main, MainClass. Этот файл jar развертывается путем переноса его в пакет OSGi, B.jar, так что функции библиотеки доступны для других плагинов в контейнере OSGi, как указано в файле MANIFEST.MF от B.jar.Начать основной метод класса из пакета OSGi

Я также хочу, чтобы запустить метод MainClass.main, содержащийся в A.jar, в отдельном процессе, вне OSGi, но все, что у меня есть в файловой системе, - B.jar. Так, например,

java -cp B.jar MainClass 

терпит неудачу с

Error: Could not find or load main class MainClass 

, тогда как

java -cp A.jar MainClass 

прекрасно работает на моем рабочем столе, перед тем a.jar завернута в b.jar.

Есть ли способ запустить MainClass.main непосредственно у B.jar?

ответ

0

Непонятно, но я предполагаю, что B.jar содержит A.jar в качестве записи. Итак, A.jar - это просто ресурс в B.jar. Чтобы запустить MainClass в A.jar из B.jar, вам нужно будет написать новый main для B.jar, который создаст ClassLoader для ресурса A.jar, а затем загрузит класс MainClass и вызовет его основной метод.

Смежные вопросы