编译: 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的时候,不要漏掉.;(这个表示当前目录)