2013-08-27 2 views
0

Предположим, что на Java есть приложение для запуска приложений.Можно ли написать программу C/C++, которая передает java-классы JVM?

Пусковые затем запускает этот C/C++ класса фидера. (Вроде самозагрузки?)

Всех Java-классов, которые вам нужны запустить «скажем App1» загружается. (App1 - это чистая Java-программа)

Теперь пусковая установка запускает App1.

Возможно ли это?

EDIT Я видел этот веб-страницу http://www.componio.com/products/jinstaller/jarcryp/
Они утверждают, что они могут шифровать банку и методы обхода loadClass() с некоторой родной библиотекой.
Я пытаюсь понять, если это подделка или, если возможно, как это сделать?

EDIT 2
Просто еще одна вещи, кто-то может сказать мне, что Принципы сообщества я сломал, чтобы получить этот минус голос? Чтобы я учился и не делал то же самое, если бы я сделал что-то неправильно? Thx

+0

да. Вы можете вызвать методы в Java, которые это делают. Однако может быть проще запустить «java App1» в командной строке. –

+0

@PeterLawrey вы ссылаетесь на метод loadClass()? Я пытаюсь обойти этот метод. – Ascendant

+0

Вы хотите загрузить класс без вызова 'loadClass'? Вы можете написать метод, который делает то же самое и называть его, но я не уверен, почему вы захотите. –

ответ

1

Код C++ может загружать JVM с использованием интерфейса JNI. После этого он может:

  1. найти классы
  2. вызовов Статические методы или создания объектов данного класса

Любой из этих подходов могут быть использованы для запуска App1. Если App1 является Java-класс с основным методом, следующий кодом имеет пример:

http://avdongre.wordpress.com/2012/07/12/launching-jvm-from-c/

+0

безупречный! спасибо, это то, что я искал. Теперь мне нужно взломать код CPP. :) – Ascendant

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