java - hadoop 命令如何与 javac 一起工作

标签 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文件。为什么这里要求不要这样做?

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

我知道我肯定遗漏了一些关于命令一般如何工作的非常基本的理解。另外我对 linux 很陌生,所以这可能是不理解这一点的原因。

最佳答案

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

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

关于java - hadoop 命令如何与 javac 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28426339/

相关文章:

java - 应用程序退出时停止观察者服务

java - 读取 Realm 对象的字段是否比 java 对象慢?

java - 在时区将 ZonedDateTime 转换为 LocalDateTime

java - Android线程可运行性能

linux - 查看 PS 命令的完整输出

bash - 如何在 Linux Bash/Shell 中将字符串拆分为组件部分

c - Linux getgrent() 结果为 "Segmentation fault"

linux - 在 linux vi 模式下每行后都需要特殊字符

linux - 我应该怎么做才能创建 Linux 可安装 I2C EEPROM 设备?

linux - 如何输出shell脚本的开始和停止日期时间(但不输出其他日志)?