Java-проект с исполняемыми банками;запуск и извлечение данных из них - PullRequest
0 голосов
/ 17 ноября 2011

На работе я использую Java-приложение (я разместил скомпилированные / исполняемые файлы на C-диске).Я хочу иметь возможность получить некоторую информацию из этого приложения с помощью кода.Само приложение, вероятно, не хранит информацию, поэтому оно должно каким-то образом взаимодействовать с унаследованными системами, я не уверен, каким образом я видел следы сервлета (?). Следовательно, я подозреваю, что приложение также имеет встроенное «шифрование» (?)

Я не хочу участвовать в процедурах шифрования и входа в систему и т. Д., Поэтому я думаю, что я мог бы просто построить проект Java на основе текущих исполняемых jar-файлов и запустить приложение, как я обычно делаю (через"главная" точка входа, "Start.jar", но затем после выполнения вызовите функции, которые я хочу (т.е. приложение просто работает как обычно в фоновом режиме) ...

Возможно ли это?Есть ли другой способ? Можно ли, например, подключиться к уже выполненному приложению Java и выполнить команды?

Что я пробовал до сих пор

  1. Скачал Eclipse и создалновый проект
  2. Сделано в Eclipse "эталонных" внешних jar-файлов (в Eclipse был мастер)
  3. Создан новый класс в моем новом проекте, вя запускаю «основную» точку входа в «главный» исполняемый файл jar (структура всех jar-файлов появляется с помощью «IntelliSense»).Я также выяснил, какой аргумент мне нужно предоставить основной процедуре, используя JD-GUI (Java Decompiler) ...

Кажется, что из основной процедуры вызывается другая процедура, который находится в другой банке, в окне отладки Eclipse я просто вижу ошибку, из-за которой я сомневаюсь, что мой текущий подход является жизнеспособным ... Может быть, проблема возникает из-за того, что команда выдается из скомпилированной банки?Может ли быть проблема с "путем к классу"?Похоже ли это на решение проблемы?Но опять же, у меня нет опыта работы с Java (в основном VBA и немного C #).

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Вы можете запустить JVM для приложения с параметрами, которые включают удаленную отладку.Затем вы можете подключить отладчик eclipse к этой JVM.

http://www.eclipsezone.com/eclipse/forums/t53459.html

1 голос
/ 17 ноября 2011

Исходя из вашего вопроса, я предполагаю, что ваше приложение не имеет Java API, против которого вы можете кодировать.Это, конечно, самый простой способ.Итак, если вы еще не проверили, сделайте это в первую очередь.

Если у вас нет API для кодирования, я думаю, ваш подход веренНо это может быть трудно сделать, так как вы в основном летите вслепую, пытаясь понять, что делает приложение.Удаленная отладка может решить часть этой проблемы.

Возможно, будет несколько более простое решение, если вы уверены, что оно отправляет запросы по сети.Вы можете использовать такой инструмент, как Wireshark, чтобы увидеть, что он создает.Затем ваше приложение может создавать запросы, которые выглядят так, и отправлять их по назначению.Это предполагает, конечно, что запросы не зашифрованы.В этом случае вам, вероятно, не повезло.

...