2011-12-11 67 views
1

对于课程项目,我正在使用由卡内基梅隆大学制作的Sphinx开源语音识别框架。这是我第一次使用ant来构建应用程序,并且这是一个有趣的时间。Ant脚本,调试JAR和Eclipse

我已经编写了一个应用程序,其目标是从麦克风输入或WAV文件中获取音频输入,使用两种可用配置之一转录它,并输出单词以及信心评分。我写的代码作品除了文字的信心评分外。该代码是从svn checkout附带的演示实用程序改编而来的,并且该实用程序按照所宣称的那样工作。但是,在我的项目中,它抛出了一个NullPointerException异常,我无法从代码中找出原因。

由于此应用程序是使用ant构建的,我知道我需要在buildscript中插入一些代码以允许调试。 This question有助于理解要做什么,但我不知道在哪里插入该代码。我假设它在标题中,但the source确实没有显示包含JVM参数的地方。

如何在这种情况下完成调试?

回答

0

要调试您的代码,请使用调试器。每个IDE都有一个。您链接到的问题中的JVM参数用于从IDE外部启动应用程序,可能位于不同的主机上,并从IDE内远程调试此应用程序。从你的问题来看,我认为你不需要这个。您只需在IDE中以调试模式运行应用程序。

请注意,NullPointerException几乎不需要任何调试:它的堆栈跟踪会准确地告诉您它发生在哪一行,原因通常是您在空对象上调用方法。

+0

第一点:stacktrace确实告诉我发生异常的位置,但我不知道传入或接收者对象是否为空。仅基于应用程序代码,无法分辨,程序配置通过初始化时使用的外部xml文件进行控制。第2点 - 我在Eclipse中尝试调试,并得到一个资源未找到错误。只有在尝试通过标准Eclipse应用程序配置运行程序时,通过ant构建时才会遇到此错误。 – Jason

0

在Eclipse中,检查您的项目属性 - > Java构建路径 - >源选项卡。看看你的相关资源是否包含在那里。