尝试将一个代理jar文件附加到在Java中运行的另一个进程时,我遇到了以下异常:
com.sun.tools.attach.AttachNotSupportedException: 无法打开套接字文件:目标进程未响应或HotSpot VM未加载。
我正在运行Linux,并使用Oracle JDK 8_101,但在回答这个问题之后,我意识到操作系统并不影响此问题的原因。
如果您遇到此问题,它发生的原因可能是因为我从与系统默认JVM不同的JVM启动程序。
即)
程序A(启动器)正在JVM-1上运行(例如JDK_8_1或JDK_8_1/jdk/jre)。
程序A(启动器)使用java -jar programB.jar创建一个进程。
程序B(目标)正在运行系统的默认JVM,JVM-2(例如JDK_8_2或JDK_8_2/jre)。
程序A(启动器)无法连接到程序B(目标),因为程序A(启动器)运行的JVM与程序B(目标)正在运行的JVM不匹配,从而抛出com.sun.tools.attach.AttachNotSupportedException异常。
com.sun.tools.attach.AttachNotSupportedException: 无法打开套接字文件:目标进程未响应或HotSpot VM未加载。
我正在运行Linux,并使用Oracle JDK 8_101,但在回答这个问题之后,我意识到操作系统并不影响此问题的原因。
如果您遇到此问题,它发生的原因可能是因为我从与系统默认JVM不同的JVM启动程序。
即)
程序A(启动器)正在JVM-1上运行(例如JDK_8_1或JDK_8_1/jdk/jre)。
程序A(启动器)使用java -jar programB.jar创建一个进程。
程序B(目标)正在运行系统的默认JVM,JVM-2(例如JDK_8_2或JDK_8_2/jre)。
程序A(启动器)无法连接到程序B(目标),因为程序A(启动器)运行的JVM与程序B(目标)正在运行的JVM不匹配,从而抛出com.sun.tools.attach.AttachNotSupportedException异常。
-Dsun.tools.attach.attachTimeout=10000
(默认值为5000)。您能否发布一些代码以重现此问题? - SubOptimal