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

  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/tuhooo/p/7805400.html
Copyright © 2011-2022 走看看