频道栏目
首页 > 资讯 > 云计算 > 正文

hadoop中java编译器的一点小疑惑

16-12-23        来源:[db:作者]  
收藏   我要投稿

hadoop文档的mapreduce第一章介绍了WordCount实例的编译和运行等,其中编译的时候用的是这样的语句。

$ bin/hadoop com.sun.tools.javac.Main WordCount.java
一直搞不懂com.sun.tools.javac.Main是啥,后来查看文档原来前面还有这样的描述

Assuming environment variables are set as follows:

export JAVA_HOME=/usr/java/default
export PATH=${JAVA_HOME}/bin:${PATH}
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

CompileWordCount.javaand create a jar:

$ bin/hadoop com.sun.tools.javac.Main WordCount.java
$ jar cf wc.jar WordCount*.class
然后我找到tools.jar解压,果然里头目录结构有com/sun/tools/javac/Main.class,所以这条命令应该是hadoop指令会在classpath中找com.sun.tools.javac.Main类,而其搜索路径就包含了tools.jar,所以能找到。 那这个类的作用呢跟JAVA_HOME下的bin目录中的javac有什么区别呢,为什么我们平时很多时候用的是javac命令,而现在用hadoop com.sun.tools.javac.Main呢,我想这两者都是可以正常编译java文件的,javac程序应该是com.sun.tools.javac下的class文件打包而成的可执行程序,作用是一样的,只是一个是由javac指令来执行,另一个是由hadoop调用com.sun.tools.javac.Main.class文件来执行,而我们在配置hadoop的过程中已经为hadoop环境配置好了环境变量,所以用hadoop指令会方便些,不然如果用javac命令的话,还需要针对其另外配置。 目前是这些浅薄的理解,可能有错,以后再修正。
相关TAG标签
上一篇:MySQL的jdbc驱动及连接字符串
下一篇:Joomla 权限提升漏洞(CVE-2016-9838)分析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站