zhb8015

posts(23) comments(6) trackbacks(0)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • hadoop

随笔档案

  • 2013年3月 (1)
  • 2012年10月 (2)
  • 2012年8月 (2)
  • 2012年7月 (1)
  • 2012年6月 (1)
  • 2012年5月 (1)
  • 2012年4月 (5)

文章分类

  • arithmetc
  • books(2)
  • design patter(4)
  • English(1)
  • exception(3)
  • hadoop(1)
  • interview(53)
  • Kent Beck
  • linux,unix(1)
  • MartinFlow(7)
  • method(7)
  • middleware(1)
  • projectManagement(6)
  • soa(9)
  • ssh(14)
  • ThoughtWork(2)
  • tibco(13)

文章档案

  • 2013年4月 (1)
  • 2013年3月 (3)
  • 2012年8月 (1)
  • 2012年7月 (8)
  • 2012年6月 (15)
  • 2012年5月 (14)
  • 2012年4月 (22)
  • 2012年3月 (5)

相册

  • java

搜索

  •  

最新评论

  • 1. re: Log4j详细配置(转)
  • 写得很详细,最后那句好像有点小问题,输出到test1和stdout应该是log4j.logger.myTest1=DEBUG, test1, stdout ?
  • --aramxiao
  • 2. re: 结合Maven2进行J2EE项目构建(转)
  • 评论内容较长,点击标题查看
  • --最代码
  • 3. re: java深浅复制
  • 评论内容较长,点击标题查看
  • --zhb8015
  • 4. re: 求质数,难以理解的代码,有兴趣可以看一下
  • 评论内容较长,点击标题查看
  • --zhb8015
  • 5. re: Advice about migrating to new platfrom
  • platfrom or platform??
  • --qingyue

阅读排行榜

评论排行榜

View Post

手工打包(jar)

   
一个小工具用到了手工打包,头疼了一段时间,现在把自己的经验记录一下,希望对遇到同样问题的朋友有帮助。
一、需求
二、手工打包
三、fat jar 上场
所有文件及脚本,fat jar 都可下载(
http://www.blogjava.net/zhb8015/admin/Files.aspx)
************
一、需求:包涉及到三个类(src),几个jar包(lib),两个属性配置文件,一个jar包内(config/db.properties)一个jar包外(bams.properties),简单路径如下,
全路径在最后。我遇到的难点:A 属性文件的读取,包内包外相对路径获取。B 三方jar包如何打入。

C:\TEST\JARTEST
├─
1.5
├─build
│  ├─classes
│  │  ├─com
│  │  │  └─vanceinfo
│  │  │      └─jvmmem
│  │  ├─config
│  │  └─lib
│  └─jar
├─config
├─lib
├─src
│  └─com
│      └─vanceinfo
│          └─jvmmem

C:\test\jartest>tree /F src
卷 system 的文件夹 PATH 列表
卷序列号为 
2099-0161
C:\TEST\JARTEST\SRC
└─com
    └─vanceinfo
        └─jvmmem
                MessageData.java
                ParsingLogFile.java
                ParsingLogFileTest.java

二、手工打包:
打包前先讲一下文件的读取,包内和包外相对路径:
if(isDir) {
                
//read from user.dir
                inputStream = new FileInputStream(new File(fileName)); 
            } 
else {
                
//read from jar
                inputStream = getClass().getResourceAsStream("/" + fileName); 
            }
说明://read from jar是从jar包中读取congfig/db.properties属性文件  fileName= "config/db.properties";
         //read from user.dir 这里采用的是从绝对路径读取的fileName = System.getProperty("user.dir") + "/";读取bams.properties
A、命令行编译:  C:\test\jartest>javac -cp  (第三方jar路径)  src\com\vanceinfo\jvmmem\*.java
     进入C:\test\jartest\src,并拷贝必须的属性文件进行打包,属性文件为 config/db.properties-->.../src/
     编写MANIFEST.MF,这里一定要注意格式(这里不再详述,网上文章很多)
Manifest-Version: 1.0
Ant
-Version: Apache Ant 1.7.1
Created
-By: 20.2-b06 (Sun Microsystems Inc.)
Main
-Class: com.vanceinfo.jvmmem.ParsingLogFile
Class
-Path: lib/junit lib/junit-3.8.1.jar config/db.properties lib/ojd
 bc14.jar lib
/log4j-1.2.8.jar lib/mysql-connector-java-5.0.8-bin.jar l
 ib
/ojdbc14.jar


     运行打包命令   java cvfm parsing.jar MANIFEST.MF com config lib 生成parsing.jar ,至此包已打完。
    注意:运行java -jar parsing.jar是找不到jar包的,也就是它不能读到jar包中的第三方包。
B、上面的文件路径其实是为Ant的准备的,有兴趣的朋友可以看一下 下载下build.xml研究一下。
三、fat jar打包工具
查了好多资料还是没有解决,不过找到了一个比较好的打包工具 fat jar。
这个插件的介绍:
http://fhqdddddd.blog.163.com/blog/static/186991542011427104124407/
真的很方便,几步就搞定了。最好新建一个工程,拷贝所需要的文件.截图如下:

选择第三方包,还能导出ant
点击finish,搞定!运行时拷贝bams.propreties属性文件到同目录,直接运行即可。




全路径:
C:\TEST\JARTEST
│  bams.properties
│  build.xml
│  Info.log
│  log4j.properties
│  readme.txt
│
├─
1.5
│      bams.properties
│      build.xml
│      Info.log
│      parsing.jar
│
├─build
│  ├─classes
│  │  │  log4j.properties
│  │  │
│  │  ├─com
│  │  │  └─vanceinfo
│  │  │      └─jvmmem
│  │  │              MessageData.
class
│  │  │              ParsingLogFile.
class
│  │  │              ParsingLogFileTest.
class
│  │  │
│  │  ├─config
│  │  │      db.properties
│  │  │
│  │  └─lib
│  │          junit
-3.8.1.jar
│  │          junit.jar
│  │          log4j
-1.2.8.jar
│  │          mysql
-connector-java-5.0.8-bin.j
│  │          ojdbc14.jar
│  │
│  └─jar
│          bams.properties
│          Info.log
│          parsing.jar
│
├─config
│      db.properties
│
├─lib
│      junit
-3.8.1.jar
│      junit.jar
│      log4j
-1.2.8.jar
│      mysql
-connector-java-5.0.8-bin.jar
│      ojdbc14.jar
│
├─src
│  └─com
│      └─vanceinfo
│          └─jvmmem
│                  MessageData.java
│                  ParsingLogFile.java
│                  ParsingLogFileTest.java

posted on 2012-08-08 15:59 zhb8015 阅读(1307) 评论(0)  编辑  收藏 所属分类: interview

新用户注册  刷新评论列表  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问   管理
相关文章:
  • Nutch vs Lucene(转)
  • ArrayList空间增长是怎么样的
  • 手工打包(jar)
  • TW interview experience(转)
  • 排序算法(转)
  • 加密算法(转)
  • 软件设计过程一些术语 AN BD FD DD CD CT
  • Log4j详细配置(转)
  • log4j详解
  • 时间复杂度
 
 
Powered by:
BlogJava
Copyright © zhb8015