Trove jar THashMap类未找到异常

问题描述:

我想在我的java项目中使用Trove-1.0.2 jar for maps。我使用Eclipse IDE。我已经在构建路径中使用“添加外部罐子”添加了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

就是Eclipse没有显示你的任何编译器错误? – ddmps 2013-03-06 16:07:19

+0

no ..我已经导入类gnu.trove.map.hash.THashMap,所以我没有收到任何编译错误。我已经使用构建路径添加了jar。但仍然没有找到类错误。我从Maven仓库下载了jar。那是否必须对异常做些什么? – 2013-03-06 16:15:23

在Eclipse中检查Runtime类路径(尽管默认情况下该库应该真的存在)。我猜你使用Run菜单在Eclipse中运行它。

  1. 右键单击您的主类。
  2. 选择“运行方式 - >运行配置...”
  3. 展开对话框左侧的Java应用程序。如果您看到 您列出了主类,请选择它,否则请单击“新启动 配置”选项,并确保它在 “主类”字段中显示主类名。
  4. 单击ClassPath选项卡,查看是否列出了您的Trove.jar文件。 如果不是,则添加它并运行该应用程序。

如果它是在类路径上,它可能是Trove-1.0.2 jar本身有依赖关系,你还没有添加到你的构建路径,虽然我已经检查过Maven Central,但这似乎不就是这样。

+0

我在hadoop集群中运行这个jar,并在完成上述更改后,仍然收到错误消息。我从这里downla jar:http://mvnrepository.com/artifact/net.sf.trove4j/trove4j/3.0.2。 – 2013-03-06 18:30:59

要在hadoop上运行作业,您需要有一个独立的jar文件,其中包含解压缩到jar中或在清单中指定的依赖关系。

看到这个问题的一些提示有关从Eclipse中运行Hadoop作业:Launch a mapreduce job from eclipse

他们也提到这篇文章,它似乎有关于设置Eclipse一些好的信息:http://www.mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-mapr

+0

嗨,我正在运行一个独立的jar文件,我使用eclipse创建。然后我将它上传到服务器并运行它。我不直接从eclipse运行它。我从这里下载的地方看到了一个pom依赖文件:http://mvnrepository.com/artifact/net.sf.trove4j/trove4j/3.0.2我的项目中没有任何清单文件。你能告诉我该怎么办这个案子吗? – 2013-03-06 18:29:01

+0

@MahalakshmiLakshminarayanan:我不知道eclipse是否可以构建具有依赖关系的jar。我建议你看看,maven或蚂蚁。 – 2013-03-07 03:17:56

+0

将尝试并看到。 – 2013-03-07 20:25:23