2

最终,我想使用 Java 程序从我通过 USB 插入的手机发送和接收消息。我可以使用 C# 程序执行此操作,但是我要发送和接收消息的程序是用 Java 编写的。为此,我使用 Rxtx 库(但使用来自Cloudhopper的 Windows x64 编译版本)。但是每当我尝试通过 USB 向手机发送任何命令时,我的计算机都会完全锁定,我必须硬重启它。

我正在运行的代码在这里:与串口的双向通信。我认为它成功地建立了一个链接,因为它到达了它接受来自控制台的输入的阶段,但是当我按下回车键并发送输入时,计算机锁定了。

我正在使用 Eclipse 运行 Windows 7 x64。感谢您的任何帮助。

4

1 回答 1

2

从代码中很难看出,但这里有一些调试提示:

  • 尝试使用调试器逐行单步调试代码,然后进入库本身,看看是否能找到问题所在。
  • 尝试以编程方式发送字符代码,而不是从控制台读取/写入。控制台的操作与直接访问有很大不同。即,而不是 System.in.read()) 只是尝试传入一个已知良好的字符串。
  • 请记住,Java 在内部使用 UCS-16,但控制台通常使用不同的字符编码(例如 Windows 的 cp1252)。因此,您的“输入”可能与系统所期望的完全不同。如果您的设备需要 ASCII 13,而您的键盘正在生成 ASCII 12,那么这可能足以让人混淆。
  • 崩溃使本机库看起来很可能发生了一些事情。如果您发现 Java 调试不断让您陷入 JNI 边界,您可能需要使用 C/C++ 工具集进行调试。

祝你好运!

于 2011-04-04T22:42:21.410 回答