Я пытаюсь интегрировать Jprofiler 8.1.4 с jenkins, используя автономный API профилирования JProfiler. Ниже приведена программа, написанная наUnsatisfiedLinkError при вызове JProfiler
- Начало записи JProfiler.
- Сохранить моментальный снимок.
Остановить запись JProfiler.
импорт java.io.File; import java.io.IOException;
открытый класс TestJenJPIntegration { public static Connection connObj = null; государственной статической силы recordCPUdata() бросает java.io.IOException, InterruptedException {
File fileObj; fileObj = new File("C:\\Perl\\firstSnap.jps"); Controller.startCPURecording(true); System.out.println("CPU recording started.."); Controller.saveSnapshot(fileObj); System.out.println("Saved snapshot"); Controller.stopCPURecording(); System.out.println("CPU recording stopped.."); } public static void main(String[] args) throws IOException, InterruptedException { try { recordCPUdata(); } catch (IOException e) { e.printStackTrace(); } }
}
Инструмент JProfiler отлично вручную, чтобы начать запись, сохранить снимок и остановить запись работает. Но когда я выполнить программу, я получаю следующее сообщение об ошибке UnsatisfiedLinkError:
- Я использовал демо-сервер профилирование, который был доступен в самой JProfiler. И я профилируюсь в той же системе, где работает Демо-приложение.
- ПРИМЕЧАНИЕ. Сервер и клиент используют тот же файл JProfilerTI.dll, если это будет проблемой.
java.lang.UnsatisfiedLinkError: com.jprofiler.agent.InterceptionCallee.registerI nterceptions0 (Z [Lcom/JProfiler/агент/Util/ч; Ljava/языки/отражения/поле; Ljava/языки/ Ljava/lang/reflect/Field; Ljava/lang/refle ct/Field; Ljava/lang/reflection/Field; Ljava/lang/reflect/Field; Ljava/lang/reflect/Field; Ljava/lang/отражать/Fi eld; Ljava/lang/reflection/Field; Ljava/lang/Class; Ljava/lang/reflect/Method; Ljava/la ng/reflection/Method;) V at com.jprofiler.agent.InterceptionCallee. registerInterceptions0 (родной метод) at com.jprofiler.agent.In terceptionCallee.registerInterceptions (EJT: 152)
at com.jprofiler.agent.probe.y.a(ejt:181)
at com.jprofiler.agent.probe.y.a(ejt:37)
at com.jprofiler.agent.Agent.initStatic(ejt:320)
at com.jprofiler.agent.Agent.<clinit>(ejt:98)
at com.jprofiler.agent.ControllerImpl.startCPURecording(ejt:53)
at com.jprofiler.api.agent.Controller.startCPURecording(ejt:108)
at TestJenJPIntegration.recordCPUdata(TestJenJPIntegration.java:24)
at TestJenJPIntegration.main(TestJenJPIntegration.java:45)
JProfiler> Native library not found. Ignoring controller call.
/пользователя Печатный Заявление/
CPU recording started..
Exception in thread "_jprofiler_offline_comm" java.lang.UnsatisfiedLinkError: co
m.jprofiler.agent.ControllerImpl.saveSnapshot0([BLjava/lang/Object;)V
at com.jprofiler.agent.ControllerImpl.saveSnapshot0(Native Method)
at com.jprofiler.agent.ControllerImpl.access$100(ejt:18)
at com.jprofiler.agent.h.run(ejt:186)
/пользователя Печатный Заявление/Saved snapshot
JProfiler> Native library not found. Ignoring controller call.
/пользователей Печатный Заявление/CPU recording stopped..
Моя проблема в том, что я unble, чтобы начать запись используя вышеуказанную программу для Jprofiler. Теперь я попытался загрузить System.loadLibrary в свою программу, и JVM потерпел аварию. # фатальная ошибка была обнаружена с помощью Java Runtime Environment: # EXCEPTION_ACCESS_VIOLATION (0xc0000005) на рс = 0x00000001800719bd, PID = 3844, т ID = 5352 # # JRE версии: Java (TM) SE Runtime Environment (7.0_60-b19) (сборка 1.7.0_60-b19) # Не удалось записать основной дамп. Minidumps по умолчанию не активируются на клиентах версии ионами Windows. Любые решения? –
Вы пробовали мастер интеграции? Вы не можете использовать loadLibrary, вы должны передать параметр VM -agentpath, заданный мастером интеграции –
Нет, вызов Controller должен быть выполнен в вашем коде, который запущен в профилированной JVM, вам не нужно вручную загружать библиотеку JProfiler. Нет отдельного процесса JProfiler, если вы не имеете в виду графический интерфейс JProfiler, который не подходит для автономного профилирования. –