【问题标题】:JProfiler window non-visible after the startJProfiler 窗口启动后不可见
【发布时间】:2013-02-06 14:53:26
【问题描述】:

JProfiler 7.2.2 启动后 - 我没有看到主窗口。我在 Windows 7 中使用 JProfiler 并继续在任务管理器中查看进程并作为启动栏中的活动按钮而没有任何错误,但窗口对我来说是隐藏的。

环境:

  • 包含 JRE 的 JProfiler 7.2.2
  • Windows 7 x64
  • Java 1.6.0_30 安装在机器上

我已经尝试过的:

  • 重新安装 JProfiler(从旧版本到最新的 7.x 版本)
  • 重新启动操作系统
  • 尝试在评估模式下启动它

除了明显的问题“如何解决它?”,还有更多可以帮助我解决问题的问题:

  1. 如何为 JProfiler 启用日志记录以及在哪里可以访问这些日志?
  2. JProfiler 还提供了哪些其他工具来分析其行为?

有来自 JProfiler 进程的堆栈跟踪:

2013-02-07 13:58:42
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.6-b04 mixed mode):

"jprofiler_ius" prio=6 tid=0x000000000d868000 nid=0x1870 runnable [0x000000001227f000]
   java.lang.Thread.State: RUNNABLE
    at java.net.TwoStacksPlainDatagramSocketImpl.receive0(Native Method)
    - locked <0x00000000e41af968> (a java.net.TwoStacksPlainDatagramSocketImpl)
    at java.net.TwoStacksPlainDatagramSocketImpl.receive(Unknown Source)
    - locked <0x00000000e41af968> (a java.net.TwoStacksPlainDatagramSocketImpl)
    at java.net.DatagramSocket.receive(Unknown Source)
    - locked <0x00000000a1501b20> (a java.net.DatagramPacket)
    - locked <0x00000000e41af920> (a java.net.MulticastSocket)
    at com.ejt.framework.e.u.run(ejt:98)

"TimerQueue" daemon prio=6 tid=0x000000000d8b9800 nid=0x2498 waiting on condition [0x000000000fd7f000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000e3fb8440> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
    at java.util.concurrent.DelayQueue.take(Unknown Source)
    at javax.swing.TimerQueue.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-0" prio=6 tid=0x000000000d457000 nid=0x22c4 waiting on condition [0x000000000ebad000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000a0592e58> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(Unknown Source)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
    at java.awt.EventQueue.getNextEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.WaitDispatchSupport$2.run(Unknown Source)
    at java.awt.WaitDispatchSupport$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(Unknown Source)
    at java.awt.Dialog.show(Unknown Source)
    at java.awt.Component.show(Unknown Source)
    at java.awt.Component.setVisible(Unknown Source)
    at java.awt.Window.setVisible(Unknown Source)
    at java.awt.Dialog.setVisible(Unknown Source)
    at com.ejt.framework.gui.at.setVisible(ejt:84)
    at com.ejt.framework.gui.fu.setVisible(ejt:82)
    at com.jprofiler.frontend.g.g.setVisible(ejt:42)
    at com.jprofiler.frontend.d.h.bk(ejt:406)
    at com.jprofiler.frontend.d.h.bg(ejt:324)
    at com.jprofiler.frontend.t.run(ejt:948)
    at com.jprofiler.frontend.cb.a(ejt:423)
    at com.jprofiler.frontend.FrontendApplication.b(ejt:944)
    at com.jprofiler.frontend.FrontendApplication.a(ejt:720)
    at com.jprofiler.frontend.FrontendApplication.a(ejt:55)
    at com.jprofiler.frontend.ae.run(ejt:654)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

"AWT-Windows" daemon prio=6 tid=0x000000000d46d800 nid=0x448 runnable [0x000000000e9af000]
   java.lang.Thread.State: RUNNABLE
    at sun.awt.windows.WToolkit.eventLoop(Native Method)
    at sun.awt.windows.WToolkit.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x000000000d218800 nid=0x1dac in Object.wait() [0x000000000e7af000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000e41c6ca0> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at sun.awt.AWTAutoShutdown.run(Unknown Source)
    - locked <0x00000000e41c6ca0> (a java.lang.Object)
    at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x000000000d487000 nid=0x2180 in Object.wait() [0x000000000e5af000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000e4014c40> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    - locked <0x00000000e4014c40> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    at sun.java2d.Disposer.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

"Exe4JStartupThread" daemon prio=6 tid=0x000000000c561800 nid=0x2094 waiting on condition [0x000000000cb1f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at com.exe4j.Controller$StartupThread.run(Unknown Source)

"Service Thread" daemon prio=6 tid=0x000000000a7ea000 nid=0x203c runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x000000000a7e9000 nid=0x2074 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x000000000a7dc000 nid=0x2514 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x000000000a7db000 nid=0x1f80 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x000000000a7d4000 nid=0x10f8 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x0000000002078800 nid=0x21c8 in Object.wait() [0x000000000bc1f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000a0d8e088> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    - locked <0x00000000a0d8e088> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x0000000002072000 nid=0x2708 in Object.wait() [0x000000000ba1f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000a0d8dbb8> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:503)
    at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
    - locked <0x00000000a0d8dbb8> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x0000000001e6f000 nid=0x960 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VM Thread" prio=10 tid=0x000000000a752800 nid=0x24f8 runnable 

"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000001fc6000 nid=0x21cc runnable 

"GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000001fc8000 nid=0x964 runnable 

"GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000001fc9800 nid=0x1b74 runnable 

"GC task thread#3 (ParallelGC)" prio=6 tid=0x0000000001fcb000 nid=0x1f34 runnable 

"VM Periodic Task Thread" prio=10 tid=0x000000000a802800 nid=0x1db0 waiting on condition 

JNI global references: 859

【问题讨论】:

  • 请检查文件 %TEMP%/jprofiler_error.log。它的内容是什么?
  • 看来我在这个位置没有 jprofiler_error.log。我可以强制创建它吗? (我通过命令行中的“echo %TEMP%”命令(不带引号)检查了 %TEMP% 位置)。
  • 刚刚意识到这可能是 JProfiler 不会将其作为错误处理的情况。 Ingo,JProfiler 是在启动时还是在第一次发生错误时创建 jprofiler_error.log?
  • 它在第一个输出到 stderr 时创建它。但是如果没有显示窗口,它必须挂在某个地方。请使用 JRE 中的“jps”实用程序获取进程 ID,并使用“jstack”实用程序获取当前堆栈跟踪。
  • 在描述中添加了堆栈跟踪。

标签: jprofiler


【解决方案1】:

目前我只看到一种解决方法 - 使用 6.2.4 版本的 JProfiler,它在我的环境中运行良好。

等待 JProfiler 7.2.3+ 检查行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多