2017-04-10 35 views

回答

2

在Azure App Service上,所有流行版本的Java都安装在路径D:\Program Files (x86)\Java。以1.8.0u73版本为例,请参见下图。

enter image description here

你可以命令set PATH=D:\Program Files (x86)\Java\jdk1.8.0_73\bin;%PATH%到Java工具临时添加到环境中通过捻控制台工具。然后,jstack工具在当前Kudu会话中可用。

+0

使用你的答案,我在进程资源管理器选项卡中从java进程的pid尝试了jstack,但是我得到了一个“Exception in thread”主“java.io.IOException:Premature EOF”。这可能是我的特定应用程序的一个问题,所以你能否验证你实际上可以这样做线程转储? –

+1

@DaveyChu你的异常似乎是由'jstack'引起的一个巨大的内容。请尝试'jstack -F PID> D:\ home \ site \ out.txt'将内容输出到文本文件。 –

0

由以前的回答启发,我创建了下面的蝙蝠脚本(可能是PowerShell的,我想),没有工作:

powershell -Command "get-process java |select -expand id" > pid.txt 
set /p id= < pid.txt 
"%JAVA_HOME%\bin\jstack" -F %id% > out.txt 

它使用的Java版本你正在使用你的应用程序,( JAVA_HOME),并且不需要你的任何输入。这很简单,并做到这一点。例如,只需在您的wwwroot中创建一个bat文件,然后在需要时运行它。

相关问题