Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Mac OS上运行rxtx_Java_Rxtx - Fatal编程技术网

Java 无法在Mac OS上运行rxtx

Java 无法在Mac OS上运行rxtx,java,rxtx,Java,Rxtx,我试图在Mac(OSX 10.8)上使用rxtx JAR文件。我已经在/Library/Java/Extensions中安装了RXTXcomm.jar、librxtxSerial.jnilib和附带的。所以文件。我试图在以下位置执行示例代码: 但当我收到一堆找不到符号的错误消息时,我显然遗漏了一些东西 以下是几点: SerialTest.java:3: cannot find symbol symbol : class CommPortIdentifier location: package

我试图在Mac(OSX 10.8)上使用rxtx JAR文件。我已经在
/Library/Java/Extensions
中安装了
RXTXcomm.jar
、librxtxSerial.jnilib和附带的
。所以
文件。我试图在以下位置执行示例代码:

但当我收到一堆
找不到符号的错误消息时,我显然遗漏了一些东西

以下是几点:

SerialTest.java:3: cannot find symbol
symbol  : class CommPortIdentifier
location: package gnu.io
import gnu.io.CommPortIdentifier;
             ^
SerialTest.java:4: cannot find symbol
symbol  : class SerialPort
location: package gnu.io
import gnu.io.SerialPort;
在我的机器上安装的Java中是否缺少一些更基本的东西?我刚刚安装了Xcode 4.5,所以我认为运行这段简单代码的一切都已经准备就绪

人们要求我将这些库放在同一个目录中。随附的是我正在运行的
ls
javac
命令:

$javac -classpath RXTXcomm.jar:. SerialTest.java 

SerialTest.java:3: cannot find symbol
symbol  : class CommPortIdentifier
location: package gnu.io
import gnu.io.CommPortIdentifier;
             ^
SerialTest.java:4: cannot find symbol
symbol  : class SerialPort
location: package gnu.io
import gnu.io.SerialPort;
             ^
SerialTest.java:5: cannot find symbol
symbol  : class SerialPortEvent
location: package gnu.io
import gnu.io.SerialPortEvent; 
             ^
SerialTest.java:6: cannot find symbol
symbol  : class SerialPortEventListener
location: package gnu.io
import gnu.io.SerialPortEventListener; 
             ^
SerialTest.java:9: cannot find symbol
symbol: class SerialPortEventListener
public class SerialTest implements SerialPortEventListener {
                                   ^
SerialTest.java:10: cannot find symbol
symbol  : class SerialPort
location: class SerialTest
    SerialPort serialPort;
    ^
SerialTest.java:83: cannot find symbol
symbol  : class SerialPortEvent
location: class SerialTest
    public synchronized void serialEvent(SerialPortEvent oEvent) {
                                         ^
SerialTest.java:27: cannot find symbol
symbol  : class CommPortIdentifier
location: class SerialTest
        CommPortIdentifier portId = null;
        ^
SerialTest.java:28: cannot find symbol
symbol  : variable CommPortIdentifier
location: class SerialTest
        Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
                               ^
SerialTest.java:32: cannot find symbol
symbol  : class CommPortIdentifier
location: class SerialTest
            CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
            ^
SerialTest.java:32: cannot find symbol
symbol  : class CommPortIdentifier
location: class SerialTest
            CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
                                             ^
SerialTest.java:48: cannot find symbol
symbol  : class SerialPort
location: class SerialTest
            serialPort = (SerialPort) portId.open(this.getClass().getName(),
                          ^
SerialTest.java:53: cannot find symbol
symbol  : variable SerialPort
location: class SerialTest
                    SerialPort.DATABITS_8,
                    ^
SerialTest.java:54: cannot find symbol
symbol  : variable SerialPort
location: class SerialTest
                    SerialPort.STOPBITS_1,
                    ^
SerialTest.java:55: cannot find symbol
symbol  : variable SerialPort
location: class SerialTest
                    SerialPort.PARITY_NONE);
                    ^
SerialTest.java:84: cannot find symbol
symbol  : variable SerialPortEvent
location: class SerialTest
        if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
                                     ^
16 errors
MacBook-Pro:src user$ ls
RXTXcomm.jar        comm.jar        librxtxSerial.jnilib
SerialTest.java     librxtxParallel.so  librxtxSerial.so
MacBook-Pro:src user$ 

是不是我又少了一个罐子来做这个?我在
RXTXcomm.jar

中没有看到这些类。RXTX库由两部分组成:第一部分是Java/jar部分,第二部分是本机库

如果Java可执行文件找不到本机
rxtx
库,就会出现错误。 因此,您应该检查本机库的位置。 JNI库的文件扩展名应为
.jnilib
.dylib
。 那么你有两种可能:

  • 第一种可能性是将本机库复制到启动Java的目录中(使用Eclipse时,这是项目目录)

  • 第二种可能性是启动Java并指定本机库所在的库路径:

java-Djava.library.path=“.:/Users/bill/rxtx/jni”MyClass

RXTX库由两部分组成:第一部分是Java/Jar部分,第二部分是本机库

如果Java可执行文件找不到本机
rxtx
库,就会出现错误。 因此,您应该检查本机库的位置。 JNI库的文件扩展名应为
.jnilib
.dylib
。 那么你有两种可能:

  • 第一种可能性是将本机库复制到启动Java的目录中(使用Eclipse时,这是项目目录)

  • 第二种可能性是启动Java并指定本机库所在的库路径:

java-Djava.library.path=“.:/Users/bill/rxtx/jni”MyClass

打开“项目属性”窗格,转到“库”,选择“编译”按钮选项,然后单击“添加Jar/文件夹”,将RXTXComm.Jar添加到列表中。那对我有用。
编译器会看到库,因为您将其放置在正确的位置,然后正如Netbeans在项目属性窗格中所说的“编译时库会传播到所有库类别”,我们希望在运行时具有相同的可见性,但不会发生这种情况。

打开项目属性窗格,转到库,选择按钮选项Compile并单击addjar/Folder,将RXTXComm.Jar添加到列表中。那对我有用。
编译器看到库是因为您放在了正确的位置,然后正如Netbeans在“项目属性”窗格中所说的“编译时库将传播到所有库类别”,我们希望在运行时具有相同的可见性,但不会发生这种情况。

如果在上面的提示之后仍然不起作用,那么您可能拥有32位RXTX库。在可以运行32位应用程序的Mac上,您可以强制客户机Java虚拟机以32位模式工作(与一些Java专家所说的相反)。通过使用
-d32
选项调用java(注意小写,因为它不是java系统属性),我成功地消除了
未满足的链接错误


我以前为Atmel处理器编写的与基于RS-232的老程序员通信的程序启动得很好,在64位环境下运行良好。但是,请记住,对于较新的Mac电脑和64位专用环境,该选项可能不可用-这是我仍然在Core 2 Duo(从Core Duo升级到Dell笔记本移植处理器)Mac Mini上保留“双”Mac OS X Snow Leopard的主要原因。

如果在上述提示之后它仍然不起作用,您可能有32位RXTX库。在可以运行32位应用程序的Mac上,您可以强制客户机Java虚拟机以32位模式工作(与一些Java专家所说的相反)。通过使用
-d32
选项调用java(注意小写,因为它不是java系统属性),我成功地消除了
未满足的链接错误


我以前为Atmel处理器编写的与基于RS-232的老程序员通信的程序启动得很好,在64位环境下运行良好。但是,请记住,对于较新的Mac电脑和64位专用环境,该选项可能不可用-这是我仍然将“双”Mac OS X雪豹保留在Core 2 Duo(从Core Duo升级到Dell笔记本移植处理器)Mac Mini上的主要原因。

听起来像是类路径问题。您是如何运行代码的?通过eclipse运行“compile”,或者在命令提示符下运行简单的“javac SerialTest.java”。如果jar位于/Library/Java/Extensions中,我相信这就是我所需要做的一切,对吗?我也尝试了-cp“/Library/Java/Extensions”,但仍然得到了相同的结果。听起来像是类路径问题。你是如何运行你的代码的?请尝试以下操作:将所有文件(包括共享库、jar文件和示例类)复制到同一目录,然后将cd复制到该目录。然后,从shell中执行javac-classpath RXTXcomm.jar:。然后,执行一个java-Djava.library.path=-cp RXTXcomm.jar:。SerialTest将所有文件都放在同一个目录下,上述内容仍然无法正常工作:(听起来像是类路径问题。您如何运行代码?通过eclipse运行“compile”或在命令提示符下运行简单的“javac SerialTest.java”。我相信这就是我需要的全部