1

我正在尝试使用 smslib 发送短信。它在 Windows 上运行良好,但现在我需要让它在 ubuntu 11.10 下运行。所以我从这里http://www.cloudhopper.com/opensource/rxtx/为 64 位操作系统安装了 rxtx 。使用已被检测为 /dev/ttyACM0 的 USB 连接手机,我将其链接到 /dev/ttyS32(一个免费的串行端口)。然后我尝试运行程序,我收到以下错误:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f44f9a065da, pid=8875, tid=139934227818240
#
# JRE version: 7.0_147-b147
# Java VM: OpenJDK 64-Bit Server VM (21.0-b17 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea7 2.0
# Distribution: Ubuntu 11.10, package 7~b147-2.0-0ubuntu0.11.10.1
# Problematic frame:
# C  [librxtxSerial.so+0x75da]  Java_gnu_io_RXTXPort_nativeDrain+0xea
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/radek/NetBeansProjects/sms/hs_err_pid8875.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   https://bugs.launchpad.net/ubuntu/+source/openjdk-7/
#
Java Result: 134

我不知道如何解决这个问题。

4

4 回答 4

3

我的 ubuntu 11.10 64 位版本也有类似的问题。

问题是因为我手动安装了 RXTX,它与我的架构不兼容。我重新安装了 RXTX 使用

sudo apt-get install librxtx-java

现在它可以工作了。我希望这有帮助。

于 2012-04-15T21:10:35.533 回答
2

据报道,rxtx-java 将在 Ubuntu 64 位上使用 openjdk 7 崩溃。我对上述配置(12.04LTS)也有同样的看法

在这里阅读https://lists.launchpad.net/openjdk/msg08527.html

于 2013-10-10T20:08:26.407 回答
1

我安装了一个较新的版本,它现在工作正常。

于 2012-03-05T15:27:34.647 回答
0

在网站上下载更新版本:http: //jlog.org/rxtx-lin.html

“下载 'RXTXcomm.jar' 并将其安装在 Java VM 的 'lib/ext' 文件夹中(例如,对于 Ubuntu 11.04:'/usr/lib/jvm/java-6-sun-1.6.0.26/jre' 和RH9 与 Sun 的 Java 1.6.0_04: '/usr/java/j2re1.6.0_04/lib/ext')。您可能需要将文件下载到临时位置(例如桌面)并使用特权命令(或来自命令/终端)将其移动到目的地。

如果您是从 V 3.x 或 V4 Beta 2 升级(即从旧版本的 RXTX),请删除 '/lib/386' 文件夹(或同等文件)中的文件 'librxtxSerial-2.1-x.so'。

下载“librxtxSerial.so”并将其安装在 Java VM 的“lib/i386”或“lib/amd64”文件夹中(例如,对于 Ubuntu 11.04:“/usr/lib/jvm/java-6-sun-1.6.0.26 /jre',对于带有 Sun 的 Java 1.6.0_04 的 RH9:'/usr/java/j2re1.6.0_04/lib/i386')。如果找不到“lib/i386”(例如对于 IBM 的 Java 1.4.x),请尝试使用该文件的“bin”文件夹。确保“librxtxSerial”对所有人都具有执行权限。您可能需要将文件下载到临时位置(例如桌面)并使用特权命令(或来自命令/终端的 sudo)将其移动到目标位置。

您可能需要以“root”身份登录并将您的jLog 用户添加到拥有“/var/lock”目录的组和拥有要使用的串行端口(例如/dev/ttyS0)的组。Ubuntu 11.04 不需要这样做。

这通常(例如对于 Red Hat 9 和 Fedora Core)分别是用户 'lock' 和 'uucp'。

如果遇到问题,请尝试以 root 身份运行 jLog,即查明问题是否是由于文件访问不当或安装不当造成的。”

于 2016-03-16T17:44:41.027 回答