无法运行JProfiler离线样本的TestProgram

时间:2014-05-08 03:37:47

标签: api offline jprofiler

所有

我在Windows PC上运行JProfiler7离线样本时遇到错误,代码来自" jprofiler7 \ api \ samples \ offline \ src \ TestProgram.java" ,并得到了这样的信息:

  

的JProfiler>本地库的另一个实例是

     

的JProfiler>加载。请检查适当的环境

     

的JProfiler>变量。 (PATH,LD_LIBRARY_PATH,DYLD_LIBRARY_PATH)

     

的JProfiler>离开。

我确定没有任何JProfiler进程在运行,我已经通过" agent.jar"导入了引用的库。并设置JProfiler的PATH:

  

C:\ Users \ user> echo%PATH%

     

C:\ Program Files \ Java \ jdk1.6.0_33 \ bin; C:\ Program Files \ java \ jdk1.6.0_33 \ jre \ bin; C:\ Program Files \ jprofiler7 \ bin \ windows-x64; C :\ Program Files \ jprofiler7 \ bin;

我想使用JProfiler API进行远程操作,有人知道如何解决这个问题吗?

的JProfiler:7.2.3 Windows:Win7 Enterprise SP1 JDK:1.6.0_33

如果我使用以下参数:

-agentlib:jprofilerti=offline,id=4321,config=C:\Program Files\jprofiler7\config\config.xml "-Xbootclasspath/a:C:\Program Files\jprofiler7\bin\agent.jar"

会有另一条消息:

    Exception in thread "main" java.lang.NoClassDefFoundError: com/jprofiler/agent/ControllerImpl
    at com.jprofiler.api.agent.Controller.startCPURecording(Controller.java:87)
    at TestProgram.main(TestProgram.java:31)
Caused by: java.lang.ClassNotFoundException: com.jprofiler.agent.ControllerImpl
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 2 more

____________编辑2014.05.08 17:04 CST __________________________________

我试着运行平台的演示(jprofiler7 \ api \ samples \ platform \ src-profiler \ TestProfiler.java),得到了同样的消息,没有args和args(-agentpath:C:\ Program Files \ jprofiler7 \ bin \ windows \ jprofilerti.dll = offline,id = 112,config =" C:\ Program Files \ jprofiler7 \ config \ config.xml -Xbootclasspath / a:C:\ Program Files \ jprofiler7 \ bin \ agent的.jar):

    JProfiler> A different instance of the native library has been
JProfiler> loaded. Please check the appropriate environment
JProfiler> variable. (PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH)
JProfiler> Exiting.

-------------------结束--------------------------- ------------------ 解决了这一点 在我的方式中,首先,我使用VM args启动Java应用程序

"-agentpath:C:\Program Files\jprofiler7\bin\windows-x64\jprofilerti.dll=port=8849" 

然后我用args运行一个JProfiler platfrom程序:

-agentpath:C:\Program Files\jprofiler7\bin\windows\jprofilerti.dll=offline,id=112,config="C:\Program Files\jprofiler7\config\config.xml -Xbootclasspath/a:C:\Program Files\jprofiler7\bin\agent.jar

然后我可以捕获一些具有空值的信息。

Profiling data :
Memory data:

Exception in thread "main" java.lang.NullPointerException
    at com.jprofiler.core.comm.d.a.getTotalHeapUsage(ejt:100)
    at TestProfiler.dumpMemoryData(TestProfiler.java:82)
    at TestProfiler.dumpProfilingData(TestProfiler.java:55)
    at TestProfiler.main(TestProfiler.java:47)

总之,它可以运行......所以结束这个问题。

1 个答案:

答案 0 :(得分:0)

替换-agentlib VM参数

-agentpath:C:\ Program Files \ jprofiler7 \ bin \ windows \ jprofilerti.dll = offline,...

并删除-Xbootclasspath VM参数