1、实验目的与要求

(1) 掌握Java应用程序的打包操作;

(2) 了解应用程序存储配置信息的两种方法;

(3) 掌握基于JNLP协议的java Web Start应用程序的发布方法;

(5) 掌握Java GUI 编程技术。

一、理论知识

 JAR 文件

1、JAR文件是压缩的,它使用 ZIP 压缩格式。

2、Java程序的打包:程序编译完成后,程序员 将.class文件压缩打包为.jar文件后,GUI界面 程序就可以直接双击图标运行。

3、⚫jar命令格式: jar {ctxui} [vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files…

⚫-c 创建一个新的或者空的存档文件并加入文件。

-m 将一个清单文件(manifest)添加到JAR文件中。

-u 更新已存在的JAR文件(c和u不能同时出现)

-x 解压存档中的命名的(或所有的〕文件

⚫(1) 创建JAR文件:jar cf jar-file(文件名) input-file(s)

(2) 查看JAR文件:jar tf jar-file      (查看t) t---want to view the Table of contents of the JAR file.

(*代表通配符,任意长度的字符。 ?仅代表一个位置是任意的)

(3) 提取JAR文件:jar xf jar-file [archived-file(s)]                 x---want to extract files from the JAR archive

(4) 更新JAR文件:jar uf jar-file input-file(s)                         u---want to update an existing JAR file.

(5) 索引JAR文件:jar i jar-file                                                 i---index an existing JAR file.

4、清单文件:每个JAR文件中包含一个用于描述归档特征的清单文 件(manifest)。清单文件被命名为MANIFEST.MF,它位于JAR文件的一个特殊的META-INF子目录中。

(2)清单文件的节与节之间用空行分开,最后一行必须以 换行符结束。否则,清单文件将无法被正确地读取。

例:– 创建一个包含清单的JAR文件,应该运行: jar cfm MyArchive.jar manifest.mf com/*.class

(3)运行JAR文件:用户可以通过下面的命令来启动应用程序: java –jar MyProgram.jar

窗口操作系统,可通过双击JAR文件图标来启动应用程序。

5、资源:Java中,应用程序使用的类通常需要一些相关的数据文件,这些文件称为资源(Resource)。

(–图像和声音文件。       –带有消息字符串和按钮标签的文本文件。      二进制数据文件,如:描述地图布局的文件。)

(1)利用资源机制对于非类文件也可以进行同样操作 ,具体步骤如下:

– 获得资源的Class对象。

– 如果资源是一个图像或声音文件,那么就需要调用 getresource(filename)获得资源的URL位置,然后利 用getImage或getAudioClip方法进行读取。 – 如果资源是文本或二进制文件,那么就可以使用 getResouceAsStream方法读取文件中的数据。

(2)资源文件可以与类文件放在同一个目录中,也可以将资源文件放在其它子目录中。具体有以下两 种方式:

–相对资源名:如data/text/about.txt 它会被解释为相对于加载这个资源的类所在 的包。

–绝对资源名:如/corejava/title.txt

(3)编译、创建JAR文件和执行这个程序的命令如下: – javac ResourceTest.java

– jar cvfm ResourceTest.jar ResourceTest.mf *.class *.gif *.txt

– java –jar ResourceTest.jar

◼ 应用程序首选项存储

◼ Java Web Start

⚫ Java Web Start是一个用Java编写的应用程序,它是Sun 公司推出的一项在Internet上发布应用程序的技术;

⚫ 通过Java Web Start可以使一个应用程序很容易地通过 web部署在各个平台上,包括Windows,Linux,Solaris等。

⚫ Java Web Start的工作过程是基于Java Network Launch Protocol(JNLP) 协议的 。 一个后缀为 JNLP的文件包含了应用程序的说明以及如何启动 这个应用程序的所有信息,Java Web Start技术 部署应用程序的关键就在于JNLP文件的编写以及 发布。

2、实验内容和步骤

实验1: 导入第13章示例程序,测试程序并进行代码注释。

 测试程序1

l 在elipse IDE中调试运行教材585页程序13-1,结合程序运行结果理解程序;

l 将所生成的JAR文件移到另外一个不同的目录中,再运行该归档文件,以便确认程序是从JAR文件中,而不是从当前目录中读取的资源。

l 掌握创建JAR文件的方法;

package resource;

import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;

/**
 * @version 1.41 2015-06-12
 * @author Cay Horstmann
 */
public class ResourceTest
{
   public static void main(String[] args)
   {
      EventQueue.invokeLater(() -> {
         JFrame frame = new ResourceTestFrame();
         frame.setTitle("ResourceTest");//设置标题
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭界面的操作
         frame.setVisible(true);//使结果为可见的
      });
   }
}

/**
 * A frame that loads image and text resources.
 */
class ResourceTestFrame extends JFrame
{  //定义像素长和宽
   private static final int DEFAULT_WIDTH = 300;
   private static final int DEFAULT_HEIGHT = 300;

   public ResourceTestFrame()//定义ResourceTestFrame类
   {//利用about.gif图像文件制作图标
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
      URL aboutURL = getClass().getResource("about.gif");
      Image img = new ImageIcon(aboutURL).getImage();
      //在找到ResourceTest类的地方查找about.gif图像文件
      setIconImage(img);

      JTextArea textArea = new JTextArea();
      //读取about.txt文件
      InputStream stream = getClass().getResourceAsStream("about.txt");
      try (Scanner in = new Scanner(stream, "UTF-8"))
      {
         while (in.hasNext())
            textArea.append(in.nextLine() + "\n");
      }//捕获异常
      add(textArea);
   }
}
resource

相关文章:

  • 2021-06-21
  • 2021-07-29
  • 2022-02-15
  • 2021-07-28
  • 2021-11-28
  • 2021-07-21
  • 2022-03-11
  • 2021-08-09
猜你喜欢
  • 2021-09-25
  • 2021-11-28
  • 2022-01-14
  • 2021-12-08
  • 2021-11-18
  • 2021-10-17
  • 2021-05-21
相关资源
相似解决方案