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并在命令行打包运行?

  • 相关阅读:
    Django中多表的增删改查操作及聚合查询、F、Q查询
    路由控制
    路由、视图、模板主要知识点回顾
    创建文件linux
    关于shell,环境变量放置在?
    snprintf和string操作函数
    C/C++的存储区域的划分
    001
    SAMBA服务器
    归并排序原理详解!
  • 原文地址:https://www.cnblogs.com/tuhooo/p/7805400.html
Copyright © 2011-2022 走看看