如何在j2me手机中阅读控制台输出? System.out.println()在哪里?

时间:2008-09-24 13:05:15

标签: java mobile java-me system.out

在为手机编写j2me应用程序时,如果使用模拟器,则在控制台上使用System.out.println()打印。但是,当代码部署在手机上时,控制台输出在哪里?

如果在不受限制的手机中无法看到这个,如果手机仍然通过USB连接到部署PC,有没有办法看到它?

8 个答案:

答案 0 :(得分:3)

在Symbian手机(诺基亚,索尼爱立信,摩托罗拉,三星,松下,西门子,检查Series60,Series80,Series90或UIQ平台)上,您可以检索System.out和System.err。最重要的是,您也可以检索Throwable.printStackTrace()。

早期版本的Symbian OS附带了一个名为Redirector的本机工具。它最终也可供第三方MIDlet开发人员使用。这些天可能很难找到,但可以使用插入Java虚拟机使用的C标准库的Symbian实现的C ++代码重新开发。

较新版本的Symbian OS附带一个额外的GCF协议,只需使用

即可检索System.out,System.err和Throwable.printStackTrace()。

javax.microedition.io.Connector.openDataInputStream("redirect://");

在从Sun Ltd cldc-hi虚拟机过渡到IBM J9虚拟机的过程中,您可能需要在某些版本的Series60上使用“redirect:// test”。

在启动要记录其输出的MIDlet之前,需要打开连接,因此您需要在单独的MIDlet中打开它。

答案 1 :(得分:2)

我找到了this question关于j2me日志记录的答案。如果没有别的办法,也许可以试试这个。访问System.out.println()的简单方法会很好。

答案 2 :(得分:2)

感谢您的回复QuickRecipesOnSymbian。

在下面的文章中,您可以找到相应的J2ME MIDlet来显示Symbian手机上的标准错误/输出:

http://wiki.forum.nokia.com/index.php/How_to_get_System.out_output_from_a_MIDlet_and_save_it_to_a_file_in_S60_devices

该解决方案也适用于三星i8910。 (由于我是这个网站上的新手,我无法发布多个链接,所以你需要在文章的最后找到带有来源和jar的拉链。)

答案 3 :(得分:1)

简单的答案是:无处可见。它确实在某处打印(因为如果你有大量的打印件,手机的负载会减慢)但是,在大多数手机上,都无法访问它。

某些设备会显示控制台输出,例如Sony Ericssons,如果系留并运行设备上的调试程序,则会显示所有设备。您可以通过搜索各个制造商的开发者网站(如果存在)来找出哪些内容以及哪些内容不起作用。

最好的办法是编写一个附加到程序中StringBuffer的小方法。然后映射按键,该按键将在屏幕上显示StringBuffer的内容。它对于搜索那些讨厌的设备问题是非常宝贵的。

答案 4 :(得分:0)

我能提供的唯一输入是每个平台的差异很大。我主要使用黑莓和System.err进入设备事件日志,但我不知道System.out在哪里。

答案 5 :(得分:0)

您还应确保不在生产代码中包含println。

我看到一些手机在执行此操作时实际上有内存泄漏(例如Sprint上的Sanyo 8400。

答案 6 :(得分:0)

登录设备始终是J2ME的一个问题,因为它没有标准的实现。 我可以致电GEAR。它是一个J2ME图形框架,它还实现了一个“设备内”调试控制台,您可以在其中打印线条并在屏幕上显示它们。

答案 7 :(得分:0)

例如,BlackBerry J2ME设备可以连接到计算机,调试器可以连接到该设备。在实际设备上运行程序后,System.out OutputStream将进入调试器控制台。