2013-03-06 3 views
1

Java 프로젝트의 맵에 Trove-1.0.2 jar를 사용하고 싶습니다. Eclipse IDE를 사용합니다. 빌드 경로에 "외부 jar 추가"를 사용하여 Trove jar를 추가했지만 여전히 ClassNotFoundException을 얻습니다.Trove jar THashMap 클래스를 찾을 수 없습니다. 예외

하지만 체크했을 때 클래스 gnu.trove.THashMap이 라이브러리에 있습니다.

Error: java.lang.ClassNotFoundException: gnu.trove.THashMap 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
     at com.a.VCLReduce0.reduce(VCLReduce0.java:38) 
     at com.a.VCLReduce0.reduce(VCLReduce0.java:1) 
     at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519) 
     at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420) 
     at org.apache.hadoop.mapred.Child$4.run(Child.java:255) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:416) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) 
     at org.apache.hadoop.mapred.Child.main(Child.java:249) 
+0

인가 일식 당신이 어떤 표시되지 컴파일러 오류? – ddmps

+0

아니요. gnu.trove.map.hash.THashMap 클래스를 가져 왔으므로 컴파일 오류가 발생하지 않습니다. 빌드 경로를 사용하여 항아리를 추가했습니다. 하지만 여전히 클래스 오류를 찾을 수 없습니다지고있다. 나는 Maven 저장소에서 항아리를 다운로드했다. 예외가있는 뭔가를해야합니까? –

답변

0

Eclipse에서 런타임 클래스 경로를 확인하십시오 (기본적으로 라이브러리가 실제로 있어야 함). Run 메뉴를 사용하여 Eclipse에서 실행하고있는 것 같습니다.

  1. 기본 클래스를 마우스 오른쪽 단추로 클릭하십시오.
  2. "Run As -> Run Configurations ..."를 선택하십시오.
  3. 대화 상자의 왼쪽에있는 Java 응용 프로그램을 확장하십시오. 기본 클래스가 표시된 이 표시되면 선택하고, 그렇지 않으면 "New Launch 구성"옵션을 클릭하고 기본 클래스 이름이 "기본 클래스"필드에 표시되는지 확인하십시오.
  4. ClassPath 탭을 클릭하고 Trove.jar 파일이 나열되어 있는지 확인하십시오. 그렇지 않다면 추가하고 앱을 실행하십시오.

클래스 경로에있는 경우 Trove-1.0.2 jar 자체가 빌드 경로에 추가하지 않은 종속성이있을 수 있습니다. 그러나 Maven Central에서 확인했는데 이것은 보이지 않습니다. 그럴 수 있습니다.

+0

hadoop 클러스터에서이 jar를 실행하고 위의 변경을 수행 한 후에도 오류가 발생합니다. http://mvnrepository.com/artifact/net.sf.trove4j/trove4j/3.0.2에서 jar 파일을 다운로드했습니다. –

0

hadoop에서 작업을 실행하려면 jar 파일로 압축을 풀거나 매니페스트에 지정된 종속성을 가진 독립형 jar 파일이 있어야합니다. 그들은 또한이 기사를 언급

, 그것은 보인다

Launch a mapreduce job from eclipse 이클립스 설정에 대한 좋은 정보를 가지고 :

이클립스에서 하둡 작업을 실행에 대한 몇 가지 힌트에 대한이 질문을 참조 http://www.mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-mapr

+0

안녕하세요, 독립 실행 형 jar 파일을 실행하고 있는데, 이클립스를 사용하여 만듭니다. 그런 다음 서버에 업로드하고 실행합니다. 나는 일식에서 직접 실행하지 않습니다. 나는 여기에서 다운로드 한 pom 의존성 파일을 보았다 : http://mvnrepository.com/artifact/net.sf.trove4j/trove4j/3.0.2 나는 내 프로젝트에 매니페스트 파일이 없다. 이 사건에 대해 내가해야 할 일을 말해 줄 수 있니? –

+0

@MahalakshmiLakshminarayanan : Eclipse가 종속성이있는 항아리를 만들 수 있는지 여부를 모르겠습니다. 나는 당신이 한 마리와 개미를 볼 것을 제안합니다. –

+0

그것을 시도하고 볼 것이다. –