java.lang.UnsatisfiedLinkError:jssc.SerialNativeInterface.getSerialPortNames()

java.lang.UnsatisfiedLinkError:jssc.SerialNativeInterface.getSerialPortNames(),java,eclipse,processing,Java,Eclipse,Processing,我正在用eclipse和Procliping做一个基于处理的项目。当我在IDE中使用“Run”命令测试项目时,一切正常。但是如果我将它导出到一个可运行的jar中,当我运行jar时,它会在String[]li=Serial.list()行上给出这个错误。知道怎么回事吗 Java源代码附件是“processing-2.2.1/modes/Java/libraries/serial/src” 下面是一个示例代码: package abcd; import processing.core.PApple

我正在用eclipse和Procliping做一个基于处理的项目。当我在IDE中使用“Run”命令测试项目时,一切正常。但是如果我将它导出到一个可运行的jar中,当我运行jar时,它会在
String[]li=Serial.list()行上给出这个错误。知道怎么回事吗

Java源代码附件是“processing-2.2.1/modes/Java/libraries/serial/src”

下面是一个示例代码:

package abcd;

import processing.core.PApplet;
import processing.serial.Serial;

public class TestUI extends PApplet {
    Serial port;

    public void setup(){
        System.out.println(Serial.list());
    }
    public void draw(){
    }
    public static void main(String _args[]) {
        PApplet.main(new String[] { abcd.TestUI.class.getName() });
    }

}

我的解决方法是:

下载最新版本的(用于处理的串行库的基础库),替换lib文件夹中的jssc.jar,错误就会消失,我的应用程序运行顺利

但是,基本库比处理中使用的修改版本大4倍,因此可能会涉及一些不必要的功能


似乎在他们最新的alpha版本中,通过添加更多的查找路径进行处理(至少在windows中),同时保持其串行库的完整性。我不熟悉他们的开发环境,所以我没有深入研究。可能有一个更简单的解决方案。

您能提供一个最小的示例来重现这个问题吗?您似乎正在使用JNI库。您需要确保在将DLL文件打包成JAR文件后可以加载它们。您知道如何使其工作吗?我很难理解为什么在我导出项目后它会运行得不同。请发布导出的JAR文件并完成异常跟踪。此外,请列出所有外部库。