2014-10-29 2 views
0

Mac OS X 10.9.2 (Mavericks)입니다. 외부 Java 라이브러리 (twitter4j)를 사용하는 코드가 있습니다. NetBeans를 통해 실행할 때 잘 실행됩니다. 그러나 터미널에서 거의 동일한 코드를 실행하려고하면 오류가 발생합니다.Java 실행 코드 (명령 줄에서)

내 디렉토리 구조가 간단합니다. .java 파일이있는 'src'폴더와 내가 사용하는 외부 .jar 파일이있는 'lib'폴더가 있습니다.

src 폴더에서 javac -cp "../lib/*" MyProgram.java으로 전화하여 문제없이 작동합니다. 내가 java MyProgram를 호출하는 경우 지금, 나는 예외를 얻을 :

Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/StreamListener 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2693) 
at java.lang.Class.privateGetMethodRecursive(Class.java:3040) 
at java.lang.Class.getMethod0(Class.java:3010) 
at java.lang.Class.getMethod(Class.java:1776) 
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
Caused by: java.lang.ClassNotFoundException: twitter4j.StreamListener 
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

이 문제가 적절히 외부 twitter4j 라이브러리 가져 오기를 갖고있는 것 같아요. 내가 여기서 무엇을 놓치고 있니?

이 코드 내 import 문은 다음과 같습니다 import twitter4j.*;, import twitter4j.conf.ConfigurationBuilder;

UPDATE : 아래의 제안을 사용하여, 나는 또한주는 java -cp "../lib/*" MyProgram를 통해 그것을 실행하려고 :

+1

컴파일러 클래스 파일을 클래스 로더가로드 할 수 있도록 twitter 라이브러리 classpath를'java' 명령에 추가해야합니다. –

+1

라이브러리가 포함 된 fatJar을 만든 다음 jar 파일을 실행할 수 있습니다. – brso05

+0

나는 또한 다음과 같이 시도했다.'java -cp "../lib/*"MyProgram'은 새로운 에러를 던지기 시작했다 : 메인 클래스 MyProgram을 찾거나로드 할 수 없었다. – stoneage

답변

0
"메인 클래스의 MyProgram를 찾거나로드 할 수 없습니다"

컴파일 할 때뿐 아니라 프로그램을 실행할 때 클래스 경로를 지정해야합니다.

java -cp "../lib/*" MyProgram 
+0

위를 실행하면 다음을 얻을 수 있습니다 : 메인 클래스 MyProgram을 찾거나로드 할 수 없습니다. – stoneage

관련 문제