`
tmj_159
  • 浏览: 702289 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

打,包含第三方JAR的JAR包

阅读更多

     想了一会真的不知道该怎么表述文章的标题,好不容易想了个还算满意的,仔细一念感觉。。。。算了,天生就笨。这样吧

 

     因为前两天,项目给测试测的时候,数据库部分出现了点问题(其实是乱码问题,本来很好解决的,想复杂了。。。。这里不跑题了)。想写个测试程序到测试的机器看看,代码倒是一下子就写完了,结果打JAR包的时候费了半天的时间,离上次手工打包的时候也不过3个月呀,看来果然是好记性赢不得三寸烂笔头呀。果断记下步骤:

 

     我是用eclipse  导出Jar 包的,本来工作就比较累了,能偷懒就偷点懒吧。

 

     这里我到出的JAR 包是这样的:mysqlsee.jar

     解压看看目录结构:mysql是我自己建立的目录

     mysql

          -mysqlsee

                 -com

                     tang

                  META-INF

 

     tang 下是我写的java字节码文件

 

     这时候如果你在CMD 用调用 java -jar 是找不到sql的驱动的。上网搜了下说在 MANIFEST.MF文件中添加 Class-Path : mysqldriver.jar 就可以了。然后看到csdn上一篇文章上说,利用-jar 的话,jvm会忽视你设置的classpath。既然这样没有关系,jar包不就是class文件的集合嘛,解压驱动的jar包,出现这样的目录:

 

      mysqldriver

           -com

                 -mysql

           -org

                 -gjt

           META-INF

  具体下面的目录就不详细列出了。

 

 

   现在有了class 文件了,都去掉META-INF文件夹,因为一会能自己生成一个的,然后整合到一起吧,这样就相当与全部自己写的类文件了。整合到一起的目录是这样的:

 

    mysqlsee

         -com

              -mysql

                    -jdbc

              -tang

          -org

               -gjt

                     -mm

                           -mysql

  如果目录结构不一样的话要马上改过来哦。

 

 

  自己写一个清单文件吧,这里我取名是man.mf

  Manifest-version: 1.0

  Main-Class: com.tang.See

  指定一下程序入口,也就是main 方法所在类。但是你别以为你有两个类有main方法就写两个了,不要尝试为难jvm,否则它会为难我们的。

 

  打开 cmd cd到自己建立的mysql 的文件夹,不是解压驱动后N个CD之后的mysql文件夹,执行命令:

  D:\mysql>jar cvfm test.jar man.mf -C mysqlsee . 注意后面的.(点)不能去掉,然后按回车吧。是不是生成了一个test.jar 了?好了,你成功了。java -jar test.jar 试试,没问题了吧,呵呵。告一段落,开始解BUG,下次再用ClassLoad 不用解压驱动的方式来写个吧。

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics