問題タブ [jstack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 実行中の Java プロセスの Java バージョンを取得する
jps を使用して実行中の Java プロセスを一覧表示し、jstack -l process_id を使用して実行中の Java プロセスのスタック情報を取得できます。このプロセスがどの Java バージョンで実行されるかを知りたいです。それを行う方法はありますか?jstack ツールを使用する必要はありません。ありがとう。
jstack -l 23819 2014-11-12 12:36:11 完全なスレッド ダンプ OpenJDK 64 ビット サーバー VM (23.25-b01 混合モード):
「リスナーのアタッチ」デーモン prio=10 tid=0x000000000272f800 nid=0x614b 条件 [0x0000000000000000] で待機中 java.lang.Thread.State: RUNNABLE
ロックされた所有可能なシンクロナイザー: - なし
tomcat - Tomcat を再起動せずにアプリケーションのスレッド ダンプを取得する
Tomcat を再起動する必要なく、サービスとして実行される Tomcat で Web アプリケーションのスレッド ダンプを作成する必要がありました。jconsole、jvisualvm、jstack を接続しようとしましたが、成功しませんでした。
- Tomcat は jmx リモート対応ではありません。(ただし、プロパティを導入できません-再起動できません)
- サービスと同じユーザーからアプリケーションを実行しようとした、TEMP、TMP フォルダを変更する
- ローカルで実行したい - tomcat と同じサーバー上で、構成が不要であるため (したがって、再起動は必要ありません) (「注: この構成は、Tomcat をリモートで監視する場合にのみ必要です。 Tomcat が実行されているのと同じユーザーを使用して、ローカルで監視します。")
- jConsole では、プロセスが灰色で表示され、表示されない場合があります - 接続できませんでした
- jStack の場合: アタッチするためのメモリまたは権限が不足しています
- Tomcat は Windows マシンで実行されています
何か案は?
java - jstack を使用してスレッド ダンプを取得中に NullPointerException が発生する
CPU スパイクの問題をデバッグしようとしています。スレッド ダンプを取得するために、以下のエラーが発生している Jstack を使用しています。
誰もこの問題を見たことがありますか?
JDK バージョン: 1.7
java - 奇妙なスレッド ダンプで Java プログラムを起動する
Java 1.8 で JavaFX プログラムを作成しましたが、私のマシンでは問題なく動作します。しかし、プログラムを別のマシンに展開すると、UI がハングして応答しなくなりました。そこで、jstack コマンドを使用して、何が起こっているのかを把握します。
私のマシンでは問題なく動作し、ダンプ ログは次のようになります。
ただし、別のマシンで起動すると、ダンプ ログは次のようにまったく異なります。
私の知る限りでは、フォルダー hsperfdata_[myusername] のユーザー名が私のマシンと一致しないことがわかりました。名前を正しく修正すると、ダンプ ログも 2 番目のサンプルのようになります。
トリックの説明を手伝ってくれる人はいますか?
intellij-idea - IntelliJ を使用して jstack 出力の分析を実行する方法
IntelliJ で jstack 出力を解析および分析する方法はありますか。Eclipse で実行できますが、IntelliJ 13 での方法がわかりません。ありがとうございます。
java - Java は、プログラムによってスレッド ダンプを強制的に実行します - 「jstack -F -l」のように"
コマンドが行うのと同じように、強制的なJavaスレッドダンプをプログラムで実行しようとしていjstack -F -l <PID>
ます。
私の最善の試み: に類似した次のコードでsun.jvm.hotspot.tools.JStack
上書きすることからサブクラスを作成しましたが、代わりに最後の行で呼び出します:run()
sun.jvm.hotspot.tools.JStack.run()
start(printstream)
start()
問題:java.lang.RuntimeException: Attempt to initialize VM twice
したがって、私はしました:
しかし、これは次の結果になります。
java.lang.RuntimeException: Unable to deduce type of thread from address 0xa5d12400 (expected type JavaThread, CompilerThread, ServiceThread, JvmtiAgentThread, or SurrogateLockerThread)
at sun.jvm.hotspot.runtime.Threads.createJavaThreadWrapper(Threads.java:152)
at sun.jvm.hotspot.runtime.Threads.first(Threads.java:140)
at sun.jvm.hotspot.runtime.DeadlockDetector.createThreadTable(DeadlockDetector.java:149)
at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:56)
at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:39)
at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:52)
at de.chili.savelogfiles.ChiliJStack.run(ChiliJStack.java:40)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at de.chili.savelogfiles.JStackFRunnable.run(JStackFRunnable.java:81)
at java.lang.Thread.run(Thread.java:722)
Caused by: sun.jvm.hotspot.types.WrongTypeException: No suitable match for type of address 0xa5d12400 (nearest symbol is _ZTV10JavaThread)
at sun.jvm.hotspot.runtime.InstanceConstructor.newWrongTypeException(InstanceConstructor.java:62)
at sun.jvm.hotspot.runtime.VirtualConstructor.instantiateWrapperFor(VirtualConstructor.java:80)
at sun.jvm.hotspot.runtime.Threads.createJavaThreadWrapper(Threads.java:148)
... 13 more
sun.jvm.hotspot.utilities.AssertionFailure: Expecting GenCollectedHeap, G1CollectedHeap, or ParallelScavengeHeap, but got sun.jvm.hotspot.gc_interface.CollectedHeap
私はアイデアがありません....