hadoop命令如何与javac一起使用

我正在阅读Apache mapreduce教程

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

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

我通过了hapdoop命令的细节 。 它将通用选项,用户命令和pipe理员命令下的所有hadoop交换机分区。 我没有发现在hadoop命令页面给出的上面的javac命令。

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

Q。 com.sun.tools.javac.Main中也有主键。 这是什么意思?

我知道我一定会错过一些关于命令如何工作的非常基本的理解。 另外我对linux很新,所以可能就是这个理解不了的原因。

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

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

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

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

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

更多关于com.sun.tools.javac.Main