2014-02-28 6 views
0

저는 직렬 통신을 수행 할 프로젝트에서 작업 중이며 프로젝트의 일부로 java-simple-serial-connector (jssc)를 패키지하려고합니다.Java 프로젝트에 jssc.jar를 추가하는 방법

이 프로젝트는 여러 컴퓨터에서 실행되기 때문에 jssc.jar 파일을 설치하지 않으려 고합니다. 실행 파일 .jar을 .jar로 패키징하는 것이 훨씬 쉽습니다.

나는 다음과 같은 오류 얻을 내 빌드 경로에 jssc.jar 추가하지만이 프로그램을 실행할 때 (아직 완료되지 않습니다주의) 한 : 여기

Exception in thread "main" java.lang.NoClassDefFoundError: SerialCommunication 
Caused by: java.lang.ClassNotFoundException: SerialCommunication 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

내 코드입니다

import jssc.*; 

public class SerialCommunication { 
    public static void main(String[] args) { 
     String[] portNames; 

     if(System.getProperty("os.name").equals("Mac OS X")){ 
      portNames = SerialPortList.getPortNames("/dev/"); 
      System.out.println("OS X"); 
     } else { 
      portNames = SerialPortList.getPortNames("COM"); 
      System.out.println("Windows"); 
     } 

     for (int i = 0; i < portNames.length; i++) { 
      System.out.println(portNames[i]); 
     } 

     SerialPort serialPort = new SerialPort(portNames[0]); 
     try { 
      serialPort.openPort();// Open serial port 
      serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); 
      serialPort.writeBytes("This is a test string".getBytes()); 
      serialPort.closePort();// Close serial port 
     } catch (SerialPortException ex) { 
      System.out.println(ex); 
     } 
    } 
} 

빌드 경로에서 jssc.jar을 라이브러리 및 외부 라이브러리로 추가했습니다. 둘 다 같은 방식으로 실패합니다. 나는 또한 해결책을 청소했다.

편집 :

내 파일 구조가 여기에 다음과 같은

/src 
    SerialCommunication.java 
/lib 
    jssc.jar 

입니다 내 빌드 경로

나는 JSSC 제대로 실행할 수있는 프로그램을받을 수 있나요 어떻게

Build path

입니다. 경로에 jar?

+0

SerialCommunication.class가 jar.jar가 아닌 jar에 들어 있는지 확인하려는 것 같습니다. 권리? 실행 가능한 jar를 실행하려면 SerialCommunication.class를 이름에 관계없이 jar 파일에 넣습니다. – mikemil

+0

유효한 파일입니다. jssc.jar를/Libraries/Java/Extensions에 두어 OS X 상자에서 작동 시키려고했는데 문제없이 작동했습니다. 내 프로젝트에 그것을 포함 시키려고하면 문제없이 빌드되지만 실행될 때 자동으로 위의 오류가 발생합니다. – mightymouse3062

+0

"빌드 경로에 jssc.jar를 추가했지만 프로그램을 실행할 때"jssc.jar을 추가하지 못했습니다. "경로 만들기"대신 "클래스 경로"를 의미합니까? 그렇다면 어떻게 추가 했습니까? –

답변

0

jssc.jar이 컴파일 된 JDK보다> => 프로그램을 실행하는 데 사용중인 JRE가 있습니까?

관련 문제