hadoop打jar包

编译:   javac  -classpath     hadoop的路径下面/hadoop-0.20.0-core.jar       -d     .class文件存放的路径     XXXX.java

 

打成jar包:   jar  -cvf   要生成的Jar包的名字.jar    *.*       (这个命令是把当前文件下所有的class文件都打如jar包里面去)

 

运行jar包:      hadoop   jar       xxxx.jar        jar包的入口类名     已存在的文件名字      结果文件名字

 

如果打jar包的时候漏掉了几个class文件没打进去,则会出现classnotfoundexception的错误!!!!

1.jar打包命令

jar -cvf xx.jar *.*

说明一下:*.*表示把当前目录下面以及子目录的所有class都打到这个xx.jar里。

-cvf的含义,可以自己去用jar命令去查看

如果要单独对某个或某些class文件进行打包,可以这样:

jar -cvf xx.jar Foo.class Bar.class


2.运行jar

java -jar xx.jar

要运行一个jar,则此jar内部的META-INFMANIFEST.MF文件里必须指明要执行的main方法类

具体格式如:

Manifest-Version: 1.0
Created-By: 1.6.0_03 (Sun Microsystems Inc.)
Main-class: Test

如果此处的Test.class在com.xx包下面,则需要指明。

如果在运行时报了invalid or corrupt jarfile错误,则需要检查Main-class: Test 之间是不是缺少了空格。


3.指定运行jar里面的class

java -cp xx.jar com.xx.Test


4.编译某个java文件,但是依赖某个jar

javac -cp xx.jar Test.java

(Test.java里面import了xx.jar里面的某个class)


5.运行某个java文件,但是依赖某个jar

java -cp .;xx.jar Test

注意:引用xx.jar的时候,不要漏掉.;(这个表示当前目录)

原文地址:https://www.cnblogs.com/baoendemao/p/3804822.html