zoukankan      html  css  js  c++  java
  • [core java学习笔记][第十章部署应用程序]

    第10章 部署应用程序和applet

    • jar文件
    • Java Web Start

    10.1 jar文件

    • jar文件就是一个压缩了类,图像和声音的ZIP压缩文件

    • 创建一个新的JAR文件应该使用的常见命令格式:

      jar cvf JARFileName File1 File2 ...
      

      例如

      jar cvf CalculatorClasses.jar *.class icon.gif
      

      通常,jar 的命令格式如下

      jar options File1,File2,.....
      

      以下列出jar程序的可选项

      一般 -cvf 常用即可

    10.1.1 清单文件

    • 命名为MANIFEST.MF用于描述归档特征的清单文件。
    • 要想创建一个包含自己清单文件的jar应该用这样的命令

      jar cfm JARFileName ManifestFileName ....
      

      jar cfm MyArhive.jar manifest.mf com/mycompany/mypkg/*.class
      
    • 要想更新一个已有JAR文件的清单,执行一下指令

      jar ufm MyArchive.jar manifest-additions.mf
      

    10.1.2 可运行JAR文件

    两种方式

    • 可以使用jar命令中的e选项指定程序的入口点

      jar cvfe MyProgram.jar MainAppClass otherclassfile
      
    • 或者,再清单文件指定应用程序的主类,最后一行必须以换行符结尾

      Main-Class: MainAppClass
      
    • 还有第三方打包器,能将jar文件转换为.exe的Windows程序,查找和加载Java虚拟机,甚至再没有找到JVM的时候告诉用于做什么

    10.1.3 资源

    • 图像和声音文件
    • 带有消息字符串和按钮标签的文本文件
    • 二进制数据文件
    • 要调用资源有一下几步

      1. 获得具有资源的Class对象。例如,AboutPanel.class,只能调用这个对象目录下的资源
      2. 如果资源是一个图像或声音文件,那么就需要调用getresource(filename)获得作为URL的资源位置,然后利用getImagegetAudioClip进行读取
      3. 其他资源用getResourceAsStream方法读取文件中的数据

      读取图像

      URL url= ResourceTest.class.getResource("about.gif");
      Image img=new ImageIcon(url).getImage();
      //或者
      URL aboutURL = getClass().getResource("about.gif");
      Image img = new ImageIcon(aboutURL).getImage();
      意思是再ResourceTest.class所处的当前目录下查找
      

      读取文本

      InputStream stream=ResourceTest.class.getResourceAsStream("about.txt");
      Scanner in=new Scanner(stream);
      
    • 还可以利用相对路径和绝对路径

    10.1.4 密封

    Java可以密封包,如果不密封包,其他类就有可能放在这个包中,进而访问包可以见性

    如何密封?

    • 修改清单文件

      Name: com/mycompany/util/
      Sealed: true
      
      Name: com/mycompany/misc/
      Sealed: false
      
    • 然后利用上面所学的打包,或者更新包的清单文件。

    10.2 Java Web Start

    10.3 applet

    10.4 应用程序首选项存储

    • 属性映射
    • 首选项API

    10.4.1 属性映射

    属性映射(property)是一种KEY/VALUE对的数据结构。常用来存放配置信息。
    
    • 三个特性

      • key和value都是String
      • 容易从文件读入或读出
      • 用二级表存放默认值
    • 实现这样的类叫java.util.Properties

    • 放入Key/value

      Properties settings=new Properties();
      setting.put("width","200");
      setting.put("title","Hello,World!");
      
    • 使用 store方法保存到文件,必须要检查异常,否则编译不通过

      FileOutputStream out = new FileOutputStream("a.out")
      settings.store(out,"hello");
      
    • 使用load加载这些文件

      FileInputStrem in = new FileInputStrem("a.out");
      settings.load(in);
      
    • 使用getProperty 获取value

      两种方式
      settings.getProperty("title"); 直接获得key=title的value,不存在返回none
      
      settings.getProperty("title","Default title");  不存在时返回第二个参数
      
    • 构造函数可以直接用别的Properties来初始化

      Properties defaultSettings= new Properties();
      Properties settings=new Properties(defaultSettings);
      
    • 以下是完整代码

      import java.util.*;
      import java.io.*;
      
      public class test
      {
          public static void main(String args[])
          {
              Properties settings=new Properties();
              settings.put("zhouyong","1111");
              settings.put("luan","2222");
              //wirte
              try{
                  FileOutputStream out = new FileOutputStream("a.out");
                  settings.store(out,"hello");
                 }
              catch (IOException ex)
                  {
                   ex.printStackTrace();
                  }
              //read
              try{            
              FileInputStream in = new FileInputStream("a.out");
              settings.load(in);
                 }
              catch (IOException ex)
                  {
                   ex.printStackTrace();
                  }           
      
          }
      }
      

    10.4.2 Preferences API

    • 一个不以平台变更的中心配置库,所有当前机器的java程序公用
    • 能通过xml来导入导出
    • value值可以为int ,等类型
    • 具体怎么用以后慢慢学
  • 相关阅读:
    Centos7.3安装和配置Tomcat8
    Centos7.3安装和配置jre1.8
    -bash: /home/java/jdk1.8.0_221/bin/java: 权限不够
    Centos7安装vsftp服务
    CENTOS之文件搜索命令Find
    Centos之文件搜索命令locate
    DockerFile体系结构(保留字指令)
    DockerFile解析
    SpringBoot项目映射
    穿透,让你不再限制内网的约束【远程控制内网电脑】【3389端口】
  • 原文地址:https://www.cnblogs.com/zy691357966/p/5480276.html
Copyright © 2011-2022 走看看