WEB开发网
开发学院软件开发Java 关于 JAR 您不知道的 5 件事 阅读

关于 JAR 您不知道的 5 件事

 2010-07-23 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 存档控制台实用工具packagecom.tedneward.jars;publicclassHello{publicstaticvoidmain(String[]args){System.out.println("Howdy!");}}Hello 实用工具内容并不

清单 1. 存档控制台实用工具

package com.tedneward.jars; 
 
public class Hello 
{ 
  public static void main(String[] args) 
  { 
    System.out.println("Howdy!"); 
  } 
} 

Hello 实用工具内容并不多,但是对于研究 JAR 文件却是一个很有用的 “脚手架”,我们先从执行此代码开始。

1. JAR 是可执行的

.NET 和 C++ 这类语言一直是 OS 友好的,只需要在命令行(helloWorld.exe)引用其名称,或在 GUI shell 中双击它的图标就可以启动应用程序。然而在 Java 编程中,启动器程序 — java — 将 JVM 引导入进程中,我们需要传递一个命令行参数(com.tedneward.Hello)指定想要启动的 main() 方法的类。

这些附加步骤使使用 Java 创建界面友好的应用程序更加困难。不仅终端用户需要在命令行输入所有参数(终端用户宁愿避开),而且极有可能使他或她操作失误以及返回一个难以理解的错误。

这个解决方案使 JAR 文件 “可执行” ,以致 Java 启动程序在执行 JAR 文件时,自动识别哪个类将要启动。我们所要做的是,将一个入口引入 JAR 文件清单文件(MANIFEST.MF 在 JAR 的 META-INF 子目录下),像这样:

清单 2. 展示入口点!

Main-Class: com.tedneward.jars.Hello 

这个清单文件只是一个名值对。因为有时候清单文件很难处理回车和空格,然而在构建 JAR 时,使用 Ant 来生成清单文件是很容易的。在清单 3 中,使用 Ant jar 任务的 manifest 元素来指定清单文件:

清单 3. 构建我的入口点!

  <target name="jar" depends="build"> 
    <jar destfile="outapp.jar" basedir="classes"> 
      <manifest> 
        <attribute name="Main-Class" value="com.tedneward.jars.Hello" /> 
      </manifest> 
    </jar> 
  </target> 

上一页  1 2 3 4 5 6  下一页

Tags:关于 JAR 知道

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接