从0.13.6
更新为0.13.7
后,我无法使用SBT
进行调试。
它是使用Homebrew
安装的。我试图重新安装它,brew doctor
什么都没显示。
我没有在Java
更新之间更改/重新安装SBT
。
lgr$ sbt -v -jvm-debug 5005 "project webapp" run
[process_args] java_version = '1.8.0_25'
# Executing command line:
java
-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-XX:MaxMetaspaceSize=256m
-agentlib:jdwp:transport=dt_socket,server=y,suspend=n,address=5005
-jar
/usr/local/Cellar/sbt/0.13.7/libexec/sbt-launch.jar
"project webapp"
run
Error occurred during initialization of VM
Could not find agent library jdwp:transport on the library path, with error: dlopen(libjdwp:transport.dylib, 1): image not found
我不确定SBT
是否缺少某个库,或brew
公式未正确安装。
如果有任何想法,我将会有所帮助。
重新安装Java
,没有帮助。
解决方法我下载了SBT 0.13.6
并且它没有问题,所以我开始认为这是一个sbt错误。任何人都可以帮忙澄清一下吗?
答案 0 :(得分:11)
为了搭载Eugene上面的答案,由于修复是在bash脚本中,因此手动应用https://github.com/sbt/sbt-launcher-package/pull/85/files的修复非常容易。只需编辑bin/sbt-launch-lib.bash
即可:
addJava "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$1"
而不是:
addJava "-agentlib:jdwp:transport=dt_socket,server=y,suspend=n,address=$1"
(请注意:
与=
之间的jdwp
而非transport
。
答案 1 :(得分:2)
使用Homebrew安装。
Homebrew安装被sbt项目批准作为在Mac上安装的推荐方式,但我们(我是其中一个开发人员)目前无法控制它。不过,我们有官方套餐sbt/sbt-launcher-package,最后我检查了Homebrew is also using it。
查看脚本相关部分的git blame,似乎调试选项在sbt/sbt-launcher-package#83中已“修复”:
在sbt-launch-lib.bash中,-Xdebug选项用于调试。我们应该为Java 5 +使用-agentlib选项。
也许您的问题应该作为sbt / sbt-launcher-package中的错误进行跟踪。
答案 2 :(得分:1)
问题已在0.13.8版本中修复。
答案 3 :(得分:0)
在我的情况下,bash修复没有帮助,但是从bash运行:
export SBT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
sbt
帮助。它来自here。