hadoop命令如何与javac一起使用

时间:2015-02-10 07:34:26

标签: java linux shell hadoop javac

我正在阅读Apache mapreduce tutorial

我能够运行该示例并获得所需的结果。但是,我无法理解如何运行以下命令来编译Java文件。

  

$ bin / hadoop com.sun.tools.javac.Main WordCount.java

我浏览了hapdoop command details。它在常规选项,用户命令和管理员命令下对所有hadoop开关进行了分区。我没有找到hadoop命令页面中给出的javac命令以上的地方。

即可。事实上,实际上我并没有得到上述命令如何工作。我的意思是我们通常在命令前面指定连字符前缀选项。但是上面的命令要求以我以前从未见过的方式运行javac。我通常用javac filename.java直接编译java文件。为什么在这里被要求不这样做?

即可。在给定命令中.Main中也有com.sun.tools.javac.Main。这是什么意思?

我知道我必须遗漏一些关于命令如何工作的非常基本的理解。另外我对linux很新,所以可能是不理解这个的原因。

2 个答案:

答案 0 :(得分:2)

Javac用于编译java代码。如果你注意到WordCount示例,那么有许多import语句需要你在类路径中添加相应的jar。

当你运行hadoop com.sun.tools.javac.Main WordCount.java时,hadoop已经加载了所有这些依赖jar来编译你的程序。你可以通过运行javac WordCount.java来测试它,如果你的类路径中没有这些必需的jar,编译器会抛出cannot find symbol错误

答案 1 :(得分:1)

使用Hadoop,您可以设置希望它用于编译代码的编译器。

com.sun.tools.javac.Main是Java编程语言的编程接口

执行bin/hadoop时,第一个参数为com.sun.tools.javac.Main,第二个参数为WordCount.java, 它使用com.sun.tools.javac.Main编译WordCount.java

More on com.sun.tools.javac.Main