Java 在hadoop上创建并运行runnable jar';提示

Java 在hadoop上创建并运行runnable jar';提示,java,eclipse,hadoop,jar,Java,Eclipse,Hadoop,Jar,我想使用Hadoop包中提供的示例WordCount程序。因此,我在eclipse中创建了一个自定义项目,并在自定义类中复制了整个wordcount代码。我还将所有外部Hadoop JAR包含在项目的构建路径中。最后,尝试创建一个可运行JAR:文件->导出->Java选项卡->可运行JAR 但是,我在jar创建中得到的错误是:导出时带有编译警告:custom\u project/src/custom\u package/CustomWordCount.java 尽管代码没有错误,但jar的创建给

我想使用Hadoop包中提供的示例WordCount程序。因此,我在eclipse中创建了一个自定义项目,并在自定义类中复制了整个wordcount代码。我还将所有外部Hadoop JAR包含在项目的构建路径中。最后,尝试创建一个可运行JAR:文件->导出->Java选项卡->可运行JAR

但是,我在jar创建中得到的错误是:导出时带有编译警告:custom\u project/src/custom\u package/CustomWordCount.java


尽管代码没有错误,但jar的创建给了我一个问题。如何解决这个问题?

Eclipse不允许我们使用带有警告的代码创建可运行的Jar

比如说,

1) 未使用的进口(包装) 2) 不推荐使用的警告等

因此,请确保在创建jar之前处理好所有这些问题。另外,在hadoop的示例WordCount代码中,创建了Job类的一个实例。这是不赞成的。因此,你肯定会面临这方面的问题。因此,为了克服这一点,请删除以下行: 删除作业作业=新作业(conf,“基本字数”)

并包括以下行:
Job Job=Job.getInstance()

如果出现编译警告,则不会停止导出。即使有错误,其他类文件也会打包为独立的ant脚本

已保存生成文件的示例项目

IDE导出(eclipse)生成的Bld.xml



这不再是事实。我刚刚将我的项目从开普勒导出为Runnable jar,在Hadoop集群上运行,它毫无问题地保存了jar文件,并带有很多警告。

我不认为这是真的,它只是一个ant任务(在最新的eclipse中),它说exported带有警告-听起来像是jar被制作出来的。你查过了吗?另外,您使用的是哪一版本的eclipse,以及您使用的是哪一种方法?你指定了主类了吗?我刚刚用一个未使用的导入创建了一个类。将其导出为可运行的jar并从Explorer运行。它按预期打开了一个消息框。我认为eclipse在制作带有警告的jar时没有任何问题。不知道你还改变了什么/hadoop是什么expecting@tgkprog正如你所说的,jar是在上述错误的情况下创建的,但是,当你打开jar中的MANIFEST.MF文件时,标记并不指向主类文件。我正在使用Eclipse开普勒版本4.3.1。您需要指定运行配置。我有两个主要的课程,所以我必须选择正确的一个。当我在浏览器中双击jar时,它打开了框架应用程序(测试应用程序),我就是这么做的。在运行配置中指定了相应项目的正确类。但是,对我来说,jar导出没有成功。我无法下载示例文件。获取服务器错误:找不到文件。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project Run1 with libraries in sub-folder">
    <!--this file was created by Eclipse Runnable JAR Export Wizard-->
    <!--ANT 1.7 is required                                        -->
    <target name="create_run_jar">
        <jar destfile="D:/U/t/workspace/1/Run1/o/RunApp.jar">
            <manifest>
                <attribute name="Main-Class" value="m.TT"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="D:/U/t/workspace/1/Run1/bin"/>
        </jar>
        <delete dir="D:/U/t/workspace/1/Run1/o/RunApp_lib"/>
        <mkdir dir="D:/U/t/workspace/1/Run1/o/RunApp_lib"/>
    </target>
</project>