私の答えは少し無関係ですが、 jcmd
を使用してスレッドをダンプしようとしたときに同じ問題が発生しました . jcmd
を実行していても、同じエラー メッセージが表示されました。 ルートの下 ユーザー。
jcmd <pid> Thread.print
を実行する必要があります Java プロセスと同じユーザーの下 そうしないと、接続が切断されます。 Java は root かどうかを気にしません
基本的に:
sudo -u <java_process_user> jcmd <pid> Thread.print
とりあえず回避してください。
'-XX:+StartAttachListener'
を追加 jvm引数に問題を修正しました。
同様の問題が https://code.google.com/p/jmockit/issues/detail?id=136 および http://mail.openjdk.java.net/pipermail/macosx-port-dev/2013 で議論されています-October/006098.html (jdk7 ビルドでのリグレッションの可能性について説明)
@bbarkerのように、同じエラーが発生しましたが、JDK 1.8.0_161でWindows 10のLinuxサブシステムを使用しています(「WindowsのUbuntuでBash」)。上記の JVM 引数を使用して Surefire プラグインを構成すると、問題も解決されました。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<argLine>-XX:+StartAttachListener</argLine>
</configuration>
</plugin>
ただし、「通常の」Windows コマンド プロンプトからテストを実行すると、上記がなくても機能します。