2011-09-14 2 views
0

Windows CMD에서 컴파일하려고하는 클래스가 하나 들어있는 Java 패키지가 있습니다.Windows에서 CMD로 라이브러리를 사용하여 Java 패키지 컴파일

Folder structure

.\src\이 패키지를 포함

다음은 폴더 구조입니다. AggregationEngine 패키지 안에 클래스를 컴파일하려고합니다. 클래스는 testClass.java이며 twitter4j 라이브러리를 사용합니다.

javac -classpath "..\lib\twitter4j-core-2.2.4.jar" -sourcepath C:\x\x\x\src\AggregationEngine\ AggregationEngine\TwitterCrawler.java 

java AggregationEngine.testClass "test String" 

pause 

했지만 작동하지 않는 것 다음 twitter4j 라이브러리의 jar 파일이 twitter4j-core-2.2.4.jar

.\src\lib\ 디렉토리에 포함 된 나는 다음을 시도했다. 나는 위의 기본적인 이해를했습니다. 위의 방법이 올바른지 확실하지 않습니다.

참고 : 환경 변수 정의 방법으로 가고 싶지 않습니다. 왜냐하면 다른 OS에서 동일하게 수행 할 것이기 때문입니다. 오, 나는 또한 복수의 .jar 파일을 포함 할 수 있습니다.

- 편집 - 출력 : 앱을 실행할 때. java AggregationEngine.TwitterCrawler

Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException 
Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 

어떤 조언이 필요합니까?

+0

정확히 "작동하지 않는 것"을 의미합니까? 컴파일러 오류가 발생합니까? 아무것도? 악마는 코에서 날아 가기 시작합니까? –

답변

2

에 설명되어 있습니다 메이븐에 Twitter4j 포함

http://ant.apache.org/

+0

이제 예외가 발생했습니다 :'예외 "main"java.lang.NoClassDefFoundError : AggregationEngine/TwitterCrawler 발생 원인 : java.lang.ClassNotFoundException : AggregationEngine.TwitterCrawler at java.net.URLClassLoader $ 1.run (알 수없는 소스) sun.misc.Launcher $ AppClassLoader.loadClass에서 java.lang.ClassLoader.loadClass (알 수없는 소스) 에서 java.net.URLClassLoader.findClass (알 수없는 소스) 에서 java.security.AccessController.doPrivileged (기본 방법) 에서 (알 수없는 출처) 프로그램 종료 .' 어떤 아이디어? – Bassem

+0

@Link : "testClass"가 TwitterCrawler를지지합니까? 아니면 둘 다 존재합니까? 둘 다 컴파일 했습니까? 즉 각각에 대한 .class 파일이 있습니까? 클래스 패스에 현재 디렉토리를 추가하는 것만으로도 충분할 수 있습니다.이를 반영하도록 답변을 변경하겠습니다. –

+0

완벽. 그것은 지금 일했습니다. 고맙습니다 :) – Bassem

2

개미를 사용할 수 있습니까? 그것은 아마 당신의 문제는 단순히 twitter4j의 JAR 때 누락 된 것입니다 프로젝트가 http://twitter4j.org/en/index.html#maven

+0

나는 답을 찾지 못하고 제 3 자 솔루션을 사용하지 않는 것을 선호합니다. – Bassem

0

... 또는 Maven을 :) 수행하는 가장 쉬운 방법 당신은 당신의 프로그램을 실행하려고 시도합니다. 컴파일러는 클래스 패스 항목 만 사용하여 코드의 정확성을 확인하며 출력에 코드 항목을 포함하지 않습니다.

이 작동합니다 :

java -classpath .;..\lib\twitter4j-core-2.2.4.jar AggregationEngine.testClass "test String" 
0

을 나는 너무 늙었 알고 있지만 나 같은 사람들을 위해 - TwitterException에 대한면 ClassNotFound의 문제는 프로젝트의 log4j, SLF4J과 평민 로깅 항아리 twitter4j 코어 이후를 포함하여 해결되었다 그들을 사용합니다.

관련 문제