我在Java 1.8上编写了一个JavaFX程序,它在我的机器上运行良好。但是,当我将程序部署到另一台计算机时,UI挂起并且没有响应。所以我使用jstack命令来计算正在发生的事情。
在我的机器上运行良好,转储日志如下:
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode):
"Worker-8" #46 prio=5 os_prio=0 tid=0x000000001b4cc800 nid=0x1f78 in Object.wait() [0x00000000292df000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x00000000e0b00ea8> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-6" #39 prio=5 os_prio=0 tid=0x000000001d8dc000 nid=0x1e38 in Object.wait() [0x000000001cd1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x00000000e0b00ea8> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"[ThreadPool Manager] - Idle Thread" #37 daemon prio=5 os_prio=0 tid=0x000000001d8db800 nid=0x1eec in Object.wait() [0x00000000279ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
- locked <0x00000000e32838b0> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
"com.google.inject.internal.util.$Finalizer" #35 daemon prio=1 os_prio=-2 tid=0x000000001d8d7000 nid=0x1430 in Object.wait() [0x0000000026e5f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000e2a4d988> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114)
"Worker-4" #34 prio=5 os_prio=0 tid=0x000000001d8da000 nid=0x4ac in Object.wait() [0x0000000020d8f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x00000000e0b00ea8> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #32 daemon prio=1 os_prio=-2 tid=0x00000000163d5800 nid=0x1600 in Object.wait() [0x000000001e68f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000e22a0a10> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"EventAdmin Async Event Dispatcher Thread" #31 daemon prio=6 os_prio=0 tid=0x000000001d8d7800 nid=0x1b50 in Object.wait() [0x000000001ce1f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000e1a3a7d0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"Java indexing" #29 daemon prio=4 os_prio=-1 tid=0x00000000163d6000 nid=0x1898 in Object.wait() [0x000000001cf1f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:382)
- locked <0x00000000e1330ec0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Unknown Source)
"Worker-1" #26 prio=5 os_prio=0 tid=0x00000000163d3000 nid=0x1254 in Object.wait() [0x000000001c0ef000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x00000000e0b00ea8> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Bundle File Closer" #25 daemon prio=6 os_prio=0 tid=0x00000000163d2800 nid=0x978 in Object.wait() [0x000000001911f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000e139dfa8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"EMF Reference Cleaner" #22 daemon prio=5 os_prio=0 tid=0x00000000163cf800 nid=0x12d4 in Object.wait() [0x000000001805f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000e0cda2d8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at org.eclipse.emf.common.util.CommonUtil$1ReferenceClearingQueuePollingThread.run(CommonUtil.java:70)
"Worker-JM" #17 prio=5 os_prio=0 tid=0x00000000161bc000 nid=0x1280 in Object.wait() [0x0000000017e5f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e0b4b878> (a java.util.ArrayList)
at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:59)
- locked <0x00000000e0b4b878> (a java.util.ArrayList)
"[Timer] - Main Queue Handler" #16 daemon prio=5 os_prio=0 tid=0x0000000015dda800 nid=0x159c in Object.wait() [0x000000001815f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
- locked <0x00000000e0cfb1f8> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)
"Start Level: Equinox Container: c021b39d-04a6-0014-1376-97e90e9c8ead" #14 daemon prio=5 os_prio=0 tid=0x0000000015c4b800 nid=0x1918 in Object.wait() [0x0000000017a5f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e0a3bc80> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000e0a3bc80> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"Framework Event Dispatcher: Equinox Container: c021b39d-04a6-0014-1376-97e90e9c8ead" #13 daemon prio=5 os_prio=0 tid=0x00000000162f7000 nid=0xe54 in Object.wait() [0x000000001795f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000e0ac4ae8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"Active Thread: Equinox Container: c021b39d-04a6-0014-1376-97e90e9c8ead" #11 prio=5 os_prio=0 tid=0x000000001622f800 nid=0x12e4 waiting on condition [0x000000001759f000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000e0ac28e0> (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.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x0000000014e06000 nid=0x1754 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x0000000014ce0000 nid=0xd94 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x0000000014cda000 nid=0x11b8 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x0000000014cd7800 nid=0x1ef4 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000000001399a000 nid=0x1fdc runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x0000000014ca3800 nid=0x1dd4 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000013933000 nid=0x1b64 in Object.wait() [0x0000000014c8f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000e0170f20> (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" #2 daemon prio=10 os_prio=2 tid=0x000000001392a000 nid=0x19dc in Object.wait() [0x0000000014b8f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x00000000e0170f60> (a java.lang.ref.Reference$Lock)
"main" #1 prio=6 os_prio=0 tid=0x000000000035f000 nid=0x1538 runnable [0x000000000012e000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
at org.eclipse.swt.widgets.Display.sleep(Display.java:4701)
at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:368)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.eventLoopIdle(IDEWorkbenchAdvisor.java:918)
at org.eclipse.ui.internal.Workbench$3.eventLoopIdle(Workbench.java:498)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
"VM Thread" os_prio=2 tid=0x0000000013926000 nid=0x157c runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00000000021ed000 nid=0x17b4 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00000000021ee800 nid=0x1ce0 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00000000021f0000 nid=0xfc0 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00000000021f1800 nid=0x59c runnable
"VM Periodic Task Thread" os_prio=2 tid=0x0000000014deb000 nid=0x94c waiting on condition
JNI global references: 203
但是,当我在另一台机器上启动时,转储日志完全不同,如:
2015-01-27 17:05:03
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode):
"Thread-6" #19 daemon prio=5 os_prio=0 tid=0x00000000597c9800 nid=0x14f4 runnable [0x000000005dd0f000]
java.lang.Thread.State: RUNNABLE
at test.sd.PrTrSim.View.SimOverviewController$1.call(SimOverviewController.java:297)
at test.sd.PrTrSim.View.SimOverviewController$1.call(SimOverviewController.java:1)
at javafx.concurrent.Task$TaskCallable.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Prism Font Disposer" #18 daemon prio=10 os_prio=2 tid=0x0000000059760800 nid=0x14b8 in Object.wait() [0x000000005c38f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c1fd4b68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000c1fd4b68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.javafx.font.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Thread-5" #17 prio=5 os_prio=0 tid=0x0000000059695000 nid=0x111c runnable [0x000000005aaae000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x00000000c2127a18> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at test.sd.PrTrSim.Connection.ServerSideSocketConnector.establishSocketConnection(ServerSideSocketConnector.java:16)
at test.sd.PrTrSim.Connection.SocketConnector.run(SocketConnector.java:48)
at java.lang.Thread.run(Unknown Source)
"Thread-4" #16 prio=5 os_prio=0 tid=0x0000000059694000 nid=0x1e1c waiting on condition [0x0000000059f9e000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at test.sd.PrTrSim.Message.SimpleMessageProcessor.run(SimpleMessageProcessor.java:43)
at java.lang.Thread.run(Unknown Source)
"JavaFX-Launcher" #15 prio=5 os_prio=0 tid=0x0000000059224000 nid=0x1490 waiting on condition [0x000000005993e000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c2128a58> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.CountDownLatch.await(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$48/96639997.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Thread-2" #14 daemon prio=5 os_prio=0 tid=0x00000000563d5000 nid=0x1238 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"JavaFX Application Thread" #13 prio=5 os_prio=0 tid=0x00000000563c0800 nid=0x1a00 waiting on condition [0x00000000573dd000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c1fb2410> (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.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at test.sd.PrTrSim.View.SimOverviewController$1$1.run(SimOverviewController.java:303)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$47/814652983.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$46/1775282465.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/1109371569.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Thread-1" #12 daemon prio=5 os_prio=0 tid=0x00000000563b9000 nid=0x11a8 in Object.wait() [0x000000005755f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c207e9c8> (a java.lang.StringBuilder)
at java.lang.Object.wait(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher.run(Unknown Source)
- locked <0x00000000c207e9c8> (a java.lang.StringBuilder)
"QuantumRenderer-0" #10 daemon prio=5 os_prio=0 tid=0x0000000056398800 nid=0x1258 waiting on condition [0x0000000055f0f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c1fc16e0> (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.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00000000560a7800 nid=0xb1c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x0000000054dbd000 nid=0x1b2c waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x0000000054dbc000 nid=0x1f84 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x0000000056029800 nid=0x1e80 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x0000000056027800 nid=0xc48 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x0000000056027000 nid=0x1864 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000054d53800 nid=0x17a8 in Object.wait() [0x000000005600f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c1e77e30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000c1e77e30> (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" #2 daemon prio=10 os_prio=2 tid=0x0000000054d4a800 nid=0x18d8 in Object.wait() [0x000000000252f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c1c09ee8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x00000000c1c09ee8> (a java.lang.ref.Reference$Lock)
"main" #1 prio=5 os_prio=0 tid=0x000000000220f800 nid=0x17ec waiting on condition [0x000000000262d000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c21285d8> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.CountDownLatch.await(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
at javafx.application.Application.launch(Unknown Source)
at test.sd.PrTrSim.mainClass.main(mainClass.java:217)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
"VM Thread" os_prio=2 tid=0x0000000054d46800 nid=0x1958 runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000207e000 nid=0x1e94 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000207f800 nid=0x18f8 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002081000 nid=0x1ecc runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002084800 nid=0x1bc8 runnable
"VM Periodic Task Thread" os_prio=2 tid=0x00000000560c3000 nid=0x1904 waiting on condition
JNI global references: 728
据我所知,我发现文件夹hsperfdata_ [myusername]的用户名与我的机器不匹配,如果我正确修改了名称,那么转储日志也会像第二个样本一样。
任何人都可以帮忙解释一下这些技巧吗?