2010-01-23 5 views
2

У меня есть JAR файл мидлет JAR-файл, который возвращает значение INT в соответствии с некоторыми входными данными ...Вызов мидлет банку для получения данных в код питона

Проблема в том, что мне нужно, чтобы получить это значение INT вызывая файл jar через некоторый код python (и отправляя необходимые входные данные для получения данных результата). Как я могу получить доступ к функциям и переменным файла JAR-файла мидлета?

Я пытаюсь декомпилировать JAR в java-код, но результат был бесполезным. Почему-то мне нужно получить код или получить связанные данные, которые оцениваются JAR-файлом?

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

ответ

0

Jython имеет собственный доступ к Java-коду, но я не уверен, поддерживает ли он MIDP.

0

Я не знаю много о J2ME, но вы могли бы использовать средство PPython для вызова метода в JAR, например. java -jar myjar.jar org.package.Main param1. См. Также параметры командной строки java для вашей ОС.

Приложение: Пример в документации pipe показывает, как читать результат команды. Возможно, вам придется написать свой собственный метод main(), который использует introspection для вызова целевого метода с правильными параметрами, как описано в данном документе JavaWorld статья: Take an in-depth look at the Java Reflection API.

+0

Редактировать: Проблема в том, что я не пишу этот код, и у меня нет кода java, я просто получаю код с помощью декомпилятора. Таким образом, код содержит измененные имена для переменных и функций, таких как a, b, c ... Итак, функция, которую я должен передать некоторым параметрам, не является основной функцией, и мне также нужно получить результат оператора return в моем python код ... С этой точки зрения это выглядит почти невозможно): – FallenAngel

+0

Я сделал несколько дополнительных предложений выше. – trashgod

0

Мидлет не может работать в стандартном рабочем столе JVM, потому что ему нужны дополнительные библиотеки. Но для запуска программы вы можете использовать эмулятор, например http://www.microemu.org/. Как получить доступ к определенной функции внутри кода, вызвать его с определенными параметрами и прочитать результат будет реальной проблемой. Но MicroEmu является открытым исходным кодом, поэтому я уверен, что это возможно. Вам понадобятся некоторые (возможно продвинутые) навыки java. Другой вариант легче MicroEmu http://kobjects.sourceforge.net/me4se/

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