如何在 Windows 中启用 SBT 远程调试?
Posted
技术标签:
【中文标题】如何在 Windows 中启用 SBT 远程调试?【英文标题】:How can I enable remote debugging for SBT in windows? 【发布时间】:2014-06-13 11:38:56 【问题描述】:我想完成与此等价的运行
sbt -jvm-debug 5005
但是我似乎无法在 Windows 中传递参数。这就是我所看到的
>sbt -jvm-debug 5005
[info] Loading project definition from [myProject]
[info] Set current project to [myProject] (in build file myProject)
[error] Expected letter
[error] Expected symbol
[error] Expected '!'
[error] Expected '+'
[error] Expected '++'
[error] Expected ';'
[error] Expected end of input.
[error] Expected 'show'
[error] Expected '*'
[error] Expected ''
[error] Expected project ID
[error] Expected configuration
[error] Expected key
[error] 5005
[error] ^
[error] Not a valid command: jvm-debug
[error] Not a valid project ID: jvm-debug
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: jvm-debug
[error] jvm-debug
[error] ^
我希望能够从 Intellij 远程调试此应用程序。任何帮助都会很棒!
【问题讨论】:
sbt shell 是从哪里来的?你是怎么安装的?看来您正在使用两个不同的 sbt 启动脚本。要验证,请同时运行sbt about
并粘贴输出。
【参考方案1】:
set SBT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
sbt run
是 Windows 7 上唯一可行的解决方案。
【讨论】:
【参考方案2】:似乎 Windows 版本的 SBT 没有定义此功能。
在 Linux 上,它在 $SBT_HOME/sbt/bin/sbt-launch-lib.bash
中定义为
addDebugger ()
addJava "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1"
您可以通过在 Windows 上设置 SBT_OPTS
环境变量来获得相同的结果。
像这样运行 SBT,让调试器监听 5005 端口
set SBT_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" && sbt
【讨论】:
行尾的“&& sbt”是什么意思?对我来说似乎不是一个有效的选择。 在 Linux 上,如果第一个命令成功,它会执行第二个命令(在本例中为 sbt)。也许实际上这在 Windows 上确实有效(我不记得了,我现在无法检查)。但是,只需跳过 && 和 eexecute set 和 sbt 作为两个单独的命令。一个接一个。 在 Windows 10 和 sbt 版本 1.3.13 上不起作用(不再?)。【参考方案3】:目前,我下载了最后更新的 sbt,正好是 sbt 1.3.3,但是当我想在项目中启用调试时,我遇到了和你一样的问题。调查,我可以看到我自己的根目录 C:\Program Files (x86)\sbt\bin 中没有这个文件(sbt-launch-lib.bash),所以当我在另一台机器上看到时,我可以注意到 sbt ,它是 1.2.8,是的,它有我之前提到的文件,所以我卸载了 sbt 1.3.3 并安装了 sbt 1.2.8 并放入我的项目 sbt -jvm-debug 9999 并且它可以工作。
【讨论】:
以上是关于如何在 Windows 中启用 SBT 远程调试?的主要内容,如果未能解决你的问题,请参考以下文章