Ошибка при загрузке общей библиотеки последовательного порта с использованием java

Мне нужно отправить данные на последовательный порт, javax.comm также включен, но выдает ошибку «Caught java.lang.UnsatisfiedLinkError: нет rxtxSerial в java.library.path при загрузке драйвера gnu.io.RXTXCommDriver. Ошибка при загрузке SolarisSerial: java. lang.UnsatisfiedLinkError: нет SolarisSerialParallel в java.library.path. Обнаружен java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/String;)I при загрузке драйвера com.sun. comm.SolarisDriver"

Я посетил все данные последовательного порта, прочитал вопрос, связанный с записью, в stackoverflow, но не нашел решения

пожалуйста, помогите мне

код ниже:

package serial;
import java.io.*;
import java.util.*;
import javax.comm.SerialPort;
import javax.comm.CommPortIdentifier;
import javax.comm.UnsupportedCommOperationException;
import javax.comm.PortInUseException;

public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n";
static SerialPort serialPort;
static OutputStream outputStream;

public static void main(String[] args) {
    portList = CommPortIdentifier.getPortIdentifiers();

    while (portList.hasMoreElements()) {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
             if (portId.getName().equals("COM6")) {
            //if (portId.getName().equals("/dev/term/a")) {
                try {
                    serialPort = (SerialPort)
                        portId.open("SimpleWriteApp", 2000);
                } catch (PortInUseException e) {}
                try {
                    outputStream = serialPort.getOutputStream();
                } catch (IOException e) {}
                try {
                    serialPort.setSerialPortParams(9600,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                } catch (UnsupportedCommOperationException e) {}
                try {
                    outputStream.write(messageString.getBytes());
                } catch (IOException e) {}
            }
        }
    }
}

}


person Khalid Hussain    schedule 14.02.2014    source источник
comment
Вы указали путь к своей библиотеке?   -  person Reimeus    schedule 15.02.2014
comment
Я поместил новую библиотеку javax.comm в C:\java_comm\lib, а netbeans установил в C:\Program Files (x86)\NetBeans 7.0.1, но я также добавил библиотеку в свойства проекта.   -  person Khalid Hussain    schedule 15.02.2014


Ответы (1)


Убедитесь, что путь к последовательной библиотеке задан. Попробуй это

java -Djava.library.path=C:\java_comm\lib SimpleWrite 

Похоже, вы используете 32-разрядную версию Netbeans и (по расширению) Java. Поэтому убедитесь, что у вас есть соответствующая 32-битная версия rxtxserial, которую можно найти здесь

person Reimeus    schedule 14.02.2014
comment
Теперь поместил папку проекта в папку C:\java_comm\lib, но ошибка такая же, пожалуйста, помогите, я знаю, что вы очень заняты, но несколько минут, которые вы даете мужчинам, я очень ценю - person Khalid Hussain; 15.02.2014
comment
Вы используете 32-битный rxtxSerial.dll (похоже, вы используете 32-битный NetBeans + JDK)? - person Reimeus; 15.02.2014
comment
Сэр, вы даете свой адрес электронной почты, я отправляю вам файл, вы проверяете, является ли он 32-битным или нет, я скачал его и добавил в библиотеку, в этой библиотеке нет никакой информации о 32-битной или 64-битной версии. - person Khalid Hussain; 15.02.2014
comment
SO работает не так. Это сайт вопросов и ответов. Теперь вернемся к библиотеке - нет простого способа проверить библиотеки, поэтому самый быстрый способ - просто повторно загрузить соответствующие библиотеки - см. добавленную ссылку - person Reimeus; 15.02.2014
comment
Я скачал его после долгих мучений, пришлите мне ссылку пожалуйста/ - person Khalid Hussain; 15.02.2014