2013-11-21 3 views
0

Я использую jdk 1.6. Я привязал агента к целевому jvm и отправил несколько аргументов. Можно ли повторно использовать агент, запущенный в целевом jvm, поскольку мои несколько аргументов изменились? Я хочу, чтобы программа выполняла новое задание, используя новое значение этих аргументов. Есть ли у кого-то подобный опыт? thanksкак повторно использовать агент, который уже загружен в целевой jvm во время выполнения

+1

Что вы подразумеваете под «повторным использованием агента»? Если вы хотите изменить поведение работающего агента, ваш агент должен предложить для этого интерфейс, например. принимать команды через сокет или трубу. – Holger

+0

Да. повторно использовать агента. –

+0

Ну, труба должна быть способ сделать это. –

ответ

0

Конечно, вы можете повторно использовать реализацию агента. Агент Java, представленный некоторым способом

public static void premain(String agentArgs, Instrumentation inst); 

рассматривается как любой класс Java. Единственное, что этот агент вызывается перед основной точкой входа в приложение normal Java. Кроме того, агент предлагает возможность легко добавить Instrumentation. Вы можете реорганизовать агента, чтобы он попал в его собственный пакет, и добавьте агента в какую-либо программу, просто добавив пакет агента в путь к классу программы. Агент в основном представляет собой обычную Java-программу, которая вызывается перед программой Java, которая была объявлена ​​в файле манифеста или как явная точка ввода программы в командной строке.

Просто имейте в виду, что любые классы, которые необходимо загрузить для загрузки агента, больше не могут быть перехвачены.

+0

Мне нужно сделать это во время выполнения. –

+0

Агент Java вызывается во время выполнения. Однако он должен быть зарегистрирован при запуске программы. –

+0

'premain' разрешает только до того, как была загружена целевая программа. –

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

  • Нет связанных вопросов^_^