簡體   English   中英

使用Powershell時出現JDWP語法錯誤

[英]JDWP syntax error when using Powershell

Windows 7 x64和最新的java版本(盡管u21工作得不好)

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

當嘗試啟動Java應用程序以遠程調試它時,我收到以下錯誤:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n <application>
ERROR: JDWP option syntax error: -agentlib:jdwp=server=y transport=dt_socket address=4000 suspend=n

但只有在使用PowerShell時,使用cmd.exe運行完全相同的命令才能正常工作。

你能試一下嗎 :

PS> $a = "java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n <application>"
PS> Invoke-Expression $a

我想PowerShell嘗試在命令行中解釋一些東西。 這樣PowerShell就必須執行。 小心,如果您的應用程序名稱中有雙引號,請使用`之前。

你也可以試試這個以便打電話。

$scriptBlock = {java -Xdebug                                                         <# This is comment param 1 #>`
                     -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n   <# This is comment param 1 #>`
                     `"$($args[0])`"}                                                <# Application Path #>

$ApplicationName = "c:\un chemin applicatif\toto"
Invoke-Command -ScriptBlock $scriptBlock  -ArgumentList $ApplicationName

我找到了,試試:

PS> $a = "java -Xdebug '-Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n' <application>"

我只是在''里面包含-Xrunjdwp param。

代替:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n <application>

嘗試使用:

java -agentlib:jdwp=server=y,transport=dt_socket,address=4000,suspend=n <application>

后者在目標VM為5.0或更高時使用,而forner用於目標VM早於5.0的機器

來源:Oracle Docs

根據上述答案,我無法弄清楚它為什么不起作用。 我使用了以下,它的工作原理

-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM