UnsatisfiedLinkError 在 Eclipse 中使用 Processing 中的串口
UnsatisfiedLinkError using Serial port from Processing in Eclipse
我有一个处理程序,应该从 arduino uno 创建的串口读取数据。我让程序在 Processing 中完美运行,但在 Eclipse 中却不行。我将 core.jar
serial.jar
和 jssc.jar
添加到我的 java 项目的构建路径中,但我仍然在使用 Serial.list()[0]
.
调用端口时遇到错误
我在这里看到过类似的问题,但 none 提供了有用的答案。我不知道我是否遗漏了什么或需要将不同的 jar 文件导入到我的构建路径中。
import processing.core.PApplet;
import processing.serial.*;
public class Processing extends PApplet {
public Processing() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
PApplet.main("Processing");
}
Serial myPort;
String val;
public void setup() {
myPort = new Serial(this, Serial.list()[0], 9600);
}
public void draw() {
if ( myPort.available() > 0) {
val = myPort.readString();
}
if (val != null) {
println(val);
}
delay(250);
}
}
错误信息:
java.lang.UnsatisfiedLinkError: jssc.SerialNativeInterface.getSerialPortNames()[Ljava/lang/String;
at jssc.SerialNativeInterface.getSerialPortNames(Native Method)
at jssc.SerialPortList.getWindowsPortNames(SerialPortList.java:309)
at jssc.SerialPortList.getPortNames(SerialPortList.java:298)
at jssc.SerialPortList.getPortNames(SerialPortList.java:182)
at processing.serial.Serial.list(Unknown Source)
at Performance.Processing.setup(Processing.java:44)
at processing.core.PApplet.handleDraw(PApplet.java:2425)
at processing.awt.PSurfaceAWT.callDraw(PSurfaceAWT.java:1547)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)
您已将 jssc.jar 添加到 Java 构建路径 这很好,但是 jssc 使用本机 c++ 库,您还需要参考该库:
- 来自 Java 构建路径 > 库 部分
- 使用箭头展开jssc.jar和select原生库位置
- 单击右侧的 编辑... 和 select 包含 OS 的本机 c++ 库的文件夹(在我的例子中是
macosx
现在)
应用更改后,link 错误将得到满足。
我有一个处理程序,应该从 arduino uno 创建的串口读取数据。我让程序在 Processing 中完美运行,但在 Eclipse 中却不行。我将 core.jar
serial.jar
和 jssc.jar
添加到我的 java 项目的构建路径中,但我仍然在使用 Serial.list()[0]
.
我在这里看到过类似的问题,但 none 提供了有用的答案。我不知道我是否遗漏了什么或需要将不同的 jar 文件导入到我的构建路径中。
import processing.core.PApplet;
import processing.serial.*;
public class Processing extends PApplet {
public Processing() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
PApplet.main("Processing");
}
Serial myPort;
String val;
public void setup() {
myPort = new Serial(this, Serial.list()[0], 9600);
}
public void draw() {
if ( myPort.available() > 0) {
val = myPort.readString();
}
if (val != null) {
println(val);
}
delay(250);
}
}
错误信息:
java.lang.UnsatisfiedLinkError: jssc.SerialNativeInterface.getSerialPortNames()[Ljava/lang/String;
at jssc.SerialNativeInterface.getSerialPortNames(Native Method)
at jssc.SerialPortList.getWindowsPortNames(SerialPortList.java:309)
at jssc.SerialPortList.getPortNames(SerialPortList.java:298)
at jssc.SerialPortList.getPortNames(SerialPortList.java:182)
at processing.serial.Serial.list(Unknown Source)
at Performance.Processing.setup(Processing.java:44)
at processing.core.PApplet.handleDraw(PApplet.java:2425)
at processing.awt.PSurfaceAWT.callDraw(PSurfaceAWT.java:1547)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)
您已将 jssc.jar 添加到 Java 构建路径 这很好,但是 jssc 使用本机 c++ 库,您还需要参考该库:
- 来自 Java 构建路径 > 库 部分
- 使用箭头展开jssc.jar和select原生库位置
- 单击右侧的 编辑... 和 select 包含 OS 的本机 c++ 库的文件夹(在我的例子中是
macosx
现在)
应用更改后,link 错误将得到满足。