shell java命令行编译的脚本实现

6310阅读 0评论2013-03-01 slp195
分类:LINUX

最近在写点Hadoop的mapred程序,由于在命令行+vim的环境下,每次编译和打包程序都很繁琐,下面自制了一个编译+打包的shell程序。

说明:

目录列表为myproject/jc.sh

                myproject/source/ 

                 myproject/classes/

1.在source目录编辑xxx.java的代码

2.在myproject下运行jc.sh

3.jc.sh会在classes生成对应class文件,在myprojece下生成jar包


jc.sh如下:

点击(此处)折叠或打开

  1. #!/bin/bash
  2. #echo "$# $0 $1 $2"

  3. HH=/root/hadoop/hadoop-0.20.203.0
  4. SRC=$1
  5. OBJ_JAR=$2

  6. if [ $# -ne 2 ];then
  7.     echo "usage: jc.sh source.java package.jar"
  8.     exit 0
  9. elif [ ${1##*.} != "java" ];then
  10.     echo "Notice: source.java java!"
  11.     exit 0
  12. elif [ ${2##*.} != "jar" ];then
  13.     echo "Notice: package.jar jar!"
  14.     exit 0
  15. else

  16. javac -classpath $HH/hadoop-core-0.20.203.0.jar:$HH/lib/commons-cli-1.2.jar:$HH/commons-lang3-3.1.jar -d classes/ source/$SRC
  17. jar -vcf $OBJ_JAR -C classes/ .

  18. fi
实例:


root@cloud2:~/hadoop/hadoop-0.20.203.0/slp_workspace# ls source
encode.java  textInput.java
root@cloud2:~/hadoop/hadoop-0.20.203.0/slp_workspace# ./jc.sh
usage: jc.sh source.java package.jar
root@cloud2:~/hadoop/hadoop-0.20.203.0/slp_workspace# ./jc.sh encode.java temp.jar
标明清单(manifest)
增加:WordCount.class(读入= 1830) (写出= 988)(压缩了 46%)
增加:WordCount$TokenizerMapper.class(读入= 1736) (写出= 752)(压缩了 56%)
增加:slp/(读入= 0) (写出= 0)(存储了 0%)
增加:slp/input/(读入= 0) (写出= 0)(存储了 0%)
增加:slp/input/TextInput.class(读入= 1813) (写出= 945)(压缩了 47%)
增加:slp/input/TextInput$TokenizerMapper.class(读入= 1425) (写出= 540)(压缩了 62%)
增加:slp/input/TextInput$InputMapper.class(读入= 1417) (写出= 534)(压缩了 62%)
增加:slp/input/textInput$InputMapper.class(读入= 1417) (写出= 534)(压缩了 62%)
增加:slp/input/textInput.class(读入= 2053) (写出= 1039)(压缩了 49%)
增加:slp/input/textInput$MergeReducer.class(读入= 1730) (写出= 699)(压缩了 59%)
增加:slp/encode/(读入= 0) (写出= 0)(存储了 0%)
增加:slp/encode/encode.class(读入= 3729) (写出= 2034)(压缩了 45%)
增加:slp/encode/encode$MergeReducer.class(读入= 1723) (写出= 696)(压缩了 59%)
增加:slp/encode/encode$InputMapper.class(读入= 1553) (写出= 636)(压缩了 59%)
增加:WordCount$IntSumReducer.class(读入= 1735) (写出= 736)(压缩了 57%)


上一篇:linux下的进程管理
下一篇:hadoop 运行mapred程序涉及第三方jar包出现“ClassNotFound”解决办法