无法在 Jprofiler 中传递命令文件

问题描述

我尝试在离线模式下自动jprofiler 以使用以下批处理脚本连接到正在运行的 JVM。我无法传递会将输入带到 jprofiler 的命令文件。我仍然不确定需要传递给 jprofiler 的格式。我尝试以文本和文件格式传递,但没有成功。

BatchScript.bat

@echo off
TITLE "Profiling an application using JPofiler"

echo ***********Running jprofiler in non-interactive mode*****************

set "jprofiler_HOME=C:\dev\jprofiler11"
set jprofiler_CONfig_FILE_LOCATION=C:\dev\profiler_start_script\config.xml

"%jprofiler_HOME%"\bin\jpenable.exe --offline --id=116 --config=%jprofiler_CONfig_FILE_LOCATION%

if %ERRORLEVEL% NEQ 0 (
    set ERROR= Jpenable is not able to profile the selected JVM,check jprofiler_HOME and jprofiler_CONfig_FILE_LOCATION is set to correct location.
    goto endError)

set /p PID=Enter the process id of the JVM:

SET "JPCONTRL=%jprofiler_HOME%\bin\jpcontroller.exe"

"%JPCONTRL%" -n --non-interactive -f **--command-file=C:\dev\profiler_start_script\commands** %PID%

goto end
:endError
echo Error: %ERROR%

:end
endlocal

命令

startcpuRecording true
saveSnapshot C:\dev\build\trunk\WBScheduler\snapshot.jps
stopcpuRecording

谁能告诉我将输入文件发送到 jprofiler 需要什么格式? 我使用的是 jprofiler 11+ 版本。

解决方法

jpcontroller.exe 的参数应该是

-n --non-interactive -f C:\dev\profiler_start_script\commands %PID%

另外,命令应该包含一个睡眠,否则快照中将没有数据:

startCPURecording true
sleep 10
stopCPURecording
saveSnapshot C:\dev\build\trunk\WBScheduler\snapshot.jps

刚刚使用 JProfiler 11.1.4 对此进行了测试。如果您的问题仍然存在,请包含错误消息。也尝试手动调用命令。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...