【问题标题】:Commandline Java Debugger命令行 Java 调试器
【发布时间】:2011-07-24 12:24:44
【问题描述】:

有没有好的java命令行调试器?

我给了 JDB 一个机会,但命令行界面很糟糕。如果我想更改最后一行并重新执行它,我必须重新输入整行。点击 [UP-ARROW] 只会给我“^[[A”。包/类/方法名也没有完成。

GDB 是一个不错的选择,但我不知道如何使用它进行远程调试。

我有一个 Maven/Vim 安装程序,并且想为 java 使用控制台调试器,是否有可能在此安装程序中集成 GDB 或其他好的调试器?

你好,斯文

【问题讨论】:

  • 命令行开发很酷!但我认为使用 IDE 作为 Eclipse 或 IntelliJ IDEA 可以为您提供开箱即用的东西 :)
  • 直到现在我才听说过 eclim 服务器,这似乎是一个有趣的项目......我想你正在使用它,因为你以前对 vim 有丰富的经验......但是...... . 你为什么不直接使用带有vim 快捷方式的Eclipse?我以前使用 emacs,但现在我真的更喜欢一直使用带有 emacs 快捷方式的 IDE。顺便说一句...如果您以前没有尝试过,我建议您使用 IntelliJ IDEA...我也使用过 Netbeans 和 Eclipse...但是 IDEA 是最好的...但它不是t 免费,至少是终极版本(有效的版本)。
  • 我有时会在 eclipse 中使用 vim 编辑器(eclim.org senario 3),但 eclipse 对我来说功能过于强大,因为每个功能都可以通过插件在 vim 中使用,所以我又回到了旧的普通的vim。这就提出了关于命令行调试器的问题。

标签: java debugging


【解决方案1】:

虽然我还没有找到一个很好的 jdb 替代品,但我使用 rlwrap 启动了包装在 readline 中的 jdb。这样,我就可以像在 bash 中一样获得历史记录和全行编辑功能。遗憾的是没有完成,但 rlwrap 支持可插入的完成,所以有人可以写一个!

【讨论】:

  • rlwrap-jdb 使用 rlwrap 钩子来提供 tab-complete 和一些有用的命令别名,以及必不可少的 readline 行为。请注意,您可能会从命令行运行类似rlwrap-jdb jdb -classpath my.jar ... 的内容。
【解决方案2】:

'rlwrap' 的提示很棒!

我现在使用rlwrap -f . -f tags -e "" jdb <java> <args>,它会根据历史记录和标签文件(使用ctags --recurse 创建)自动完成,这非常有用。 详情请参考man rlwrap

【讨论】:

  • 您能否补充说明 ctags 的用途是什么?这是为了使所有可能的变量名都可以自动完成吗?在每种情况下?我认为让 Java 关键字可完成是没有价值的。我用 rlwrap -f 。 jdb ... -e "" 在我的 rlwrap 版本中甚至无法识别。但我喜欢它,因为我讨厌 eclipse 的臃肿,遗憾的是 1.5 左右的 JDK 不再支持 JSwat。
  • @GuntherSchadow, iirc 我用它来完成函数名称以便能够在那里设置断点。
【解决方案3】:

在这里你可以得到所有command-line debuggers的列表。

此外,不完全是调试器,但绝对是 Java 的命令行界面 可以帮你调试:

【讨论】:

  • 你的意思是Jython作为Java脚本接口,我不知道,在代码中写一些日志指令不是更容易吗?
猜你喜欢
  • 2013-02-09
  • 2018-07-30
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 2023-04-08
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多