head first java ( 17 章 )

开发完以后会有很多的类, 拿这些类怎么办呢?

image

- 本机

1. 类文件与源代码分离在不同目录 javac –d ../classes *.java

- 把类包进 JAR

  1. 确定所有类文件所在目录, 例如 classes

  2. 创建 manifest.txt 来描述哪个类带有 main()方法, 该文件带有下面这一行:

     Main-Class: MyApp // 在此之后要敲回车换行, 这个文件也要放在classes目录下

  3. 执行jar工具来创建带有所有类以及manifest的 JAR文件

    jar –cvmf manifest.txt app1.jar *.class  ( 跟 tar 很像 )

    或 jar –cvmf manifest.txt app1.jar MyApp.class

大部分都是以可执行的 JAR 部署的

- 执行 JAR

  java 虚拟机能够从JAR中载入类, 并调用该类的main()方法.事实上整个应用程序都可以包在JAR中. 一旦main方法开始执行, java虚拟机就不会在乎类重哪里来.

  java –jar app1.jar ( 就可以执行了 )

  java 虚拟机会检查 JAR 的 manifest 寻找入口, 如果没有就会发生异常

  有的 JAR 可以直接双击开始执行, 例如 windows 和 Mac OS

- 把类包进包中(重复利用类, 类似目前很多框架) 

  注意, 这个包不是JAR, 而是java中的package

  担心类重名,比如你写了个API给别人用,在函数库里,有重复的名字就废了

  image

  我们要把前几页战士的组织结构做个修改,让类包进包中,然后再吧整个包给JAR起来

  类得全名, 例如 java.util.ArrayList ( 要保证包名称不重复

  反向使用 domain的包名称,例如 com.headfirstjava.projects.Chart ( 目录要配合 )

  package com.headfirstjava; // 必须是程序第一语句

  -- 编译与执行包

  1. –d 现象编译 javac –d ../classes com/headfirstjava/packageexercise.java

     -d 后边的是编译后 class 放置位置, com/head… 等等是源文件放置位置

     注意:以上是在 source 目录下编译的,所以, ../才会起作用,在这个目录下有路径/com/headfirstjava

    image

  2. 执行包

  cd MyProject/classes

  java com.headfirstjava.PackageExercise ( 跟执行java程序一样, 以前不也是先javac 源代码编译, 再java class文件)

- 创建带包的JAR

  image

  image

  image

1.image2.image3.image

- java web start

  运用 java web start(JWS) 你的程序可以在浏览器上执行首次启动(从web来start)

  image

  image

  image

  所以你需要制作.jnlp文件, 方法如下:

  image

image

原文地址:https://www.cnblogs.com/moveofgod/p/3028061.html