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

关于 JAR 您不知道的 5 件事

 2010-07-23 00:00:00 来源:WEB开发网   
核心提示: 现在用户在执行 JAR 文件时需要做的就是通过 java -jar outapp.jar 在命令行上指定其文件名,就 GUI shell 来说,关于 JAR 您不知道的 5 件事(3),双击 JAR 文件即可,2. JAR 可以包括依赖关系信息似乎 Hello 实用工具已经展开,幸运的是,JAR

现在用户在执行 JAR 文件时需要做的就是通过 java -jar outapp.jar 在命令行上指定其文件名。就 GUI shell 来说,双击 JAR 文件即可。

2. JAR 可以包括依赖关系信息

似乎 Hello 实用工具已经展开,改变实现的需求已经出现。Spring 或 Guice 这类依赖项注入(DI)容器可以为我们处理许多细节,但是仍然有点小问题:修改代码使其含有 DI 容器的用法可能导致清单 4 所示的结果,如:

清单 4. Hello、Spring world!

package com.tedneward.jars; 
 
import org.springframework.context.*; 
import org.springframework.context.support.*; 
 
public class Hello 
{ 
  public static void main(String[] args) 
  { 
    ApplicationContext appContext = 
      new FileSystemXmlApplicationContext("./app.xml"); 
    ISpeak speaker = (ISpeak) appContext.getBean("speaker"); 
    System.out.println(speaker.sayHello()); 
  } 
} 

由于启动程序的 -jar 选项将覆盖 -classpath 命令行选项中的所有内容,因此运行这些代码时,Spring 必须是在 CLASSPATH 和 环境变量中。幸运的是,JAR 允许在清单文件中出现其他的 JAR 依赖项声明,这使得无需声明就可以隐式创建 CLASSPATH,如清单 5 所示:

清单 5. Hello、Spring CLASSPATH!

 <target name="jar" depends="build"> 
    <jar destfile="outapp.jar" basedir="classes"> 
      <manifest> 
        <attribute name="Main-Class" value="com.tedneward.jars.Hello" /> 
        <attribute name="Class-Path" 
          value="./lib/org.springframework.context-3.0.1.RELEASE-A.jar 
           ./lib/org.springframework.core-3.0.1.RELEASE-A.jar 
           ./lib/org.springframework.asm-3.0.1.RELEASE-A.jar 
           ./lib/org.springframework.beans-3.0.1.RELEASE-A.jar 
           ./lib/org.springframework.expression-3.0.1.RELEASE-A.jar 
           ./lib/commons-logging-1.0.4.jar" /> 
      </manifest> 
    </jar> 
  </target> 

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

Tags:关于 JAR 知道

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