zoukankan      html  css  js  c++  java
  • java工程编写manifest文件

      如果需要一个可以单独运行的jar包“Runnable JAR file”,省事的方法是妥妥的选择打一个可运行的jar包“Runnable JAR file”。如此一来,就可以把程序运行所依赖的类、第三方jar包等资源整合到一个单独的jar包中,使用“java -jar xxx.jar”命令等方式可以直接执行程序。注意这种方式需要选择工程中的一个运行配置(Launch configuration),只要之前用Eclipse执行过该程序即可自动生成该配置。

      值得注意的是,一个可运行程序依赖的jar包可能会有很多,如果每个程序都把依赖的jar包整合在自己的jar包中,显然是对存储空间和运行效率的浪费。我们可以选择将程序打包成普通jar包“JAR file”,选择要打包的资源时,只选择程序源文件等必要的资源,而不选择包含第三方jar包的文件夹。注意选择程序的入口类(主类),当然也可以手动修改清单文件MANIFEST.MF来指定主类。

      将多个程序可能依赖的jar包集中放置在一个单独的文件夹中,然后修改jar包中“META-INF”目录下的“MANIFEST.MF”清单文件。该文件的“Main-Class”属性指定了程序的主类,“Class-Path”属性则指定了运行主类所依赖的外部类的路径。将类路径配置在清单文件中的好处是,运行jar包时可以省去一长串的classpath参数。

    manifest为文件格式:

    Manifest-Version: 1.0
    Main-Class: com.hejing.paserTsp.ShowResultFrame
    Class-Path: lib/commons-beanutils-1.8.0.jar
     lib/byte-buddy-1.7.5.jar
     lib/client-combined-3.8.1.jar
     lib/client-combined-3.8.1-sources.jar
     lib/commons-codec-1.10.jar
     lib/commons-collections-3.2.1.jar
     lib/commons-exec-1.3.jar
     lib/commons-lang-2.5.jar
     lib/commons-logging-1.1.1.jar
    
    Manifest-Version指程序的版本号
    Main-Class指程序主方法的入口类
    Class-Path指外来jar包的位置

    这个文件的编写需要遵循严格的规范。
    1. 第一行不能空,行与行之间不能有空行,每一行的最后一个字符不能是空格。
    2. 最后一行一定是空行。
    3. 每个属性的名称和值之间(冒号后面)一定要有空格。
    4. 文件的每一行都不能超过72个字节(一般是70个ASCII字母加上回车换行符);如果72个字节不够用,则另起一行并以空格开头:以空格开头的行都被视为前一行的续行,不要使用TAB键,否则会报错:invalid header
    5. Class-Path属性指定的类或jar包是本地的文件,不可以是远程访问的类或者JAR包文件中的JAR包,即不能是jar in jar,当然也就不能是本jar包中包含的jar包。要实现对jar in jar的引用,需要自定义相关代码来读取它们。上面提到的RunnableJAR file之所以能够运行,就是因为Eclipse为我们提供了jarinjarloader,来帮助我们读取jar in jar。
  • 相关阅读:
    SpringMVC案例3----spring3.0项目拦截器、ajax、文件上传应用
    TCP/IP、UDP、 Http、Socket的差别
    HttpClient 图讲解明
    数据库设计--数据的垂直拆分
    未经处理的异常在 System.Data.dll 中发生。其它信息:在应使用条件的上下文(在 '***' 附近)中指定了非布尔类型的表达式。
    VMware 下扩展linux硬盘空间
    cocos2d_android 第一个游戏
    解决安卓程序安装没图标的问题
    Qt编译错误GL/gl.h: No such file or directory
    【编程题目】二元树的深度
  • 原文地址:https://www.cnblogs.com/hejing-swust/p/8514251.html
Copyright © 2011-2022 走看看