zoukankan      html  css  js  c++  java
  • 全命令行手写MapReduce并且打包运行

    主要要讲的有3个

    java中的package是干啥的?

    工作了好几年的都一定真正理解java里面的package关键字,这里在写MapReduce需要进行打包的时候突然发现命令行下打包运行居然不会了,这。。。。尴尬极了,都不敢说自己是java开发的。

    首先来看一个很简单的例子

    Hello.java

    public class Hello {
        public static void main(String[] args) {
            System.out.println("hello.......
    ");
        }
    }

    那么这个在命令行下如何编译运行捏?

    javac Hello.java

    然后

    java Hello

    注意:这里要运行的话要有主方法,而且主方法一定要规范,不然就会报错。

    现在我们给它加一个包,现在的文件名是HelloP.java,P代表了带package的。

    HelloP.java

    package com.tuhooo;
    
    public class HelloP {
        public static void main(String[] args) {
            System.out.println("hello.......
    ");
        }
    }

    然后我们依然用上述的方法来运行这个文件:

    javac HelloP.java

    java HelloP

    image

    报错了说找不到主类。

    此时正确的方式是

    javac –d . HelloP.java

    -d是带目录编译,将java采用的目录作为命名空间分隔符的目录连同java文件一起编译了。

    然后我们运行的时候就是

    java com.tuhooo.HelloP

    那么怎么作为jar包运行呢?

    刚刚我们已经带目录进行编译了,接下来就是打包,打包很简单但是要注意一点。

    jar –cvf test.jar com/tuhooo/HelloP.class

    这里的意思是将HelloP这个类打包到当前路径的test.jar中,注意如果是带包的话前面的路径名也一定要带着。

    不然只有一个裸类是没用的。

    [root@hadoop ~]# jar -cvf test.jar com/tuhooo/HelloP.class
    added manifest
    adding: com/tuhooo/Hello.class(in = 428) (out= 291)(deflated 32%)
    [root@hadoop ~]# java -cp test.jar com.tuhooo.HelloP
    hello.......

    那么我们执行的时候就是通过如下命令来执行的

    java中的package如何打包,以及运行其中的main方法?

    如何手写MapReduce并在命令行打包运行?

  • 相关阅读:
    大学生自学网
    如何保证主从复制数据一致性
    CDN
    后端 线上 服务监控 与 报警 方案2
    利用 Gearman 实现系统错误报警功能
    增量部署和全量部署
    后端线上服务监控与报警方案
    简析TCP的三次握手与四次分手
    301 和 302 对 SEO 的影响
    Linux 查看负载
  • 原文地址:https://www.cnblogs.com/tuhooo/p/7805400.html
Copyright © 2011-2022 走看看