2

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 でまったく同じコマンドを実行すると、期待どおりに機能します。

4

3 に答える 3

3

試すことができますか:

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 を入れるだけです。

于 2013-08-26T04:48:49.397 に答える
1

それ以外の:

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 以降の場合に使用され、前者はターゲット VM が 5.0 より前のマシン用です。

出典: オラクルのドキュメント

于 2013-08-21T17:01:50.627 に答える