不確定是否有更好的堆棧溢出。請原諒我這個問題的性質,但是當談到爲我的Java環境設置時,我還是有點綠色。無法在Mac OS上運行rxtx
我想在Mac上使用Java的rxtx jar文件(10.8)。我已在/ Library/Java/Extensions中安裝了RXTXcomm.jar,librxtxSerial.jnilib和隨附的.so文件。我試圖執行示例代碼:http://arduino.cc/playground/Interfacing/Java
但我顯然缺少一些東西,因爲我得到了一堆「找不到符號」的錯誤消息。
這裏有幾個:
SerialTest.java:3:找不到符號 符號:類CommPortIdentifier 位置:包gnu.io 進口gnu.io.CommPortIdentifier; ^ SerialTest.java:4:找不到符號 符號: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中看到這些類。
聽起來像一個類路徑問題。你如何運行你的代碼? –
通過簡單的'javac SerialTest.java'運行'compile'或命令提示符就可以通過eclipse實現。我相信如果jar在/ Library/Java/Extensions中,我需要做的是正確的?我試過一個-cp「/ Library/Java/Extensions」,我仍然得到了相同的結果。 – WildBill
聽起來像一個類路徑問題。你如何運行你的代碼? 請嘗試此操作: 將所有文件(包括共享庫,jar文件和示例類)複製到同一目錄,然後cd cd到此目錄。然後,從你的shell中,執行一個 javac -classpath RXTXcomm.jar :. SerialTest.java 然後,執行一個 java -Djava.library.path =。 -cp RXTXcomm.jar :. SerialTest –