【笔记】《Java核心技术(第十版)》卷1-第13章-部署Java应用程序

第13章 部署Java应用程序

13.1 JAR文件

13.1.1 创建JAR文件

13.1.2 清单文件

13.1.3 可执行JAR文件

13.1.4 资源

【API】java.iang.Class 1.0:

  • URL getResource(String name) 1.1
  • InputStream getResourceAsStream(String name) 1.1
    找到与类位于同一位置的资源, 返回一个可以加载资源的 URL 或者输人流。 如果没有找到资源, 则返回 null , 而且不会抛出异常或者发生 I/O 错误。

13.1.5 密封

13.2 应用首选项的存储

13.2.1 属性映射

【API】java.util.Properties 1.0:

  • Properties( )
    创建一个空属性映射。

  • Properties ( Properties defaults )
    用一组默认值创建一个空属性映射。
    参数:defaults 用于查找的默认值。

  • String getProperty ( String key )
    获得一个属性。返回与键(key)关联的值,或者如果这个键未在表中出现,则返回默认值表中与这个键关联的值,或者如果键在默认值表中也未出现,则返回null。
    参数:key 要获得相关字符串的键。

  • String getProperty(String key, String defaultValue)
    如果键未找到,获得有默认值的属性。返回与键关联的字符串,或者如果键在表中未出现,则返回默认字符串。
    参数:key 要获得相关字符串的键
    defaultValue 键未找到时返回的字符串

  • Object setProperty(String key, String value)

    设置一个属性。返回给定键之前设置的值。
    参数:key 要设置相关字符串的键
    value 与键关联的值

  • void load(InputStream in) throws IOException
    从一个输入流加载一个属性映射。
    参数: in 输入流

  • void store( OutputStream out , String header ) 1.2
    将一个属性映射保存到一个输出流。
    参数: out 输出流
    header 存储文件第一行的标题

【API】java.lang.System 1.0:

  • Properties getProperties( )
    获取所有系统属性。应用必须有权限获取所有属性, 否则会拋出一个安全异常。
  • String getProperty( String key)
    获取给定键名对应的系统属性。应用必须有权限获取这个属性, 否则会抛出一个安全异常。

注释: 可以在 Java 运行时目录的 security/java.policy 文件中找到可以自由访问的系统属性名。

13.2.2 首选项API

【API】java.util.prefs.Preferences 1.4:

  • Preferences userRoot( )
    返回调用程序的用户的首选项根节点。
  • Preferences systemRoot( )
    返回系统范围的首选项根节点。
  • Preferences node(String path )
    返回从当前节点由给定路径可以到达的节点。 如果 path 是绝对路径 (也就是说, 以一个 / 开头,) 则从包含这个首选项节点的树的根节点开始查找。 如果给定路径不存在相应的节点, 则创建这样一个节点。
  • Preferences userNodeForPackage(Class cl )
  • Preferences systemNodeForPackage(Class cl )
    返回当前用户树或系统树中的一个节点, 其绝对节点路径对应类 cl 的包名。
  • String[] keys( )
    返冋属于这个节点的所有键。
  • String get( String key, String defval )
  • int getInt( String key, int defval )
  • long getLong( String key, long defval )
  • float getFloat( String key, float defval )
  • double getDouble(String key, double defval )
  • boolean getBoolean( String key, boolean defval )
  • byte[ ] getByteArray( String key, byte[ ] defval )
    返回与给定键关联的值, 或者如果没有值与这个键关联、 关联的值类型不正确或首选项存储库不可用, 则返回所提供的默认值。
  • void put( String key, String value)
  • void putlnt( String key, int value)
  • void putLong( String key, long value)
  • void putFloat( String key, float value)
  • void putDouble( String key, double value)
  • void putBoolean( String key, boolean value)
  • void putByteArray( String key, byte[ ] value)
    在这个节点存储一个键 / 值对。
  • void exportSubtree( OutputStream out )
    将这个节点及其子节点的首选项写至指定的流。
  • void exportNode( OutputStream out )
    将这个节点 (但不包括其子节点) 的首选项写至指定的流。
  • void importPreferences( InputStream in)
    导人指定流中包含的首选项。

13.3 服务加载器

【API】java.util.ServiceLoader<S> 1.6:

  • static <S> ServiceLoader<S> 1oad( C1ass<S> service )
    创建一个服务加载器来加载实现给定服务接口的类。
  • Iterator<S> iterator()
    生成一个以“ 懒” 方式加载服务类的迭代器。也就是说,迭代器推进时类才会加载。

13.4 applet

13.4.1 一个简单的applet

【API】java.applet.Applet 1.0:

  • void init( )
    首次加载 applet 时会调用这个方法。 覆盖这个方法, 把所有初始化代码放在这里。
  • void start( )
    覆盖这个方法,用户每次访问包含这个 applet 的浏览器页面时需要执行的代码都放在这个方法中。典型的动作是重新激活一个线程。
  • void stop( )
    覆盖这个方法,用户每次离开包含这个 applet 的浏览器页面时需要执行的代码都放在这个方法中。典型的动作是撤销一个线程。
  • void destroy( )
    覆盖这个方法,用户退出浏览器时需要执行的代码都放在这个方法中。
  • void resize( int width , int height )
    请求调整 applet 的大小。 如果能用在 Web 页面上这会是一个很不错的方法;遗憾的是,在当前浏览器中并不可用, 因为这与当前浏览器的页面布局机制有冲突。

13.4.2 applet HTML 标记和属性

13.4.3 使用参数向applet传递信息

【API】java.applet.Applet 1.0:

  • public String getParameter( String name )
    得到加载 applet 的 Web 页面中用 param 标记定义的一个参数值。字符串 name 是区分
    大小写的。
  • public String getAppletInfo( )
    很多 applet 作者都会覆盖这个方法来返回关于当前 applet 作者、 版本和版权信息的字符串。
  • public String[][] getParameterInfo( )
    可以覆盖这个方法来返回 applet 支持的一个 param 标记选项数组。每一行包含 3 项:参数名、类型和参数的描述。下面给出一个例子:
    “fps”, “1-10”, “frames per second”
    “repeat”, “boolean”, “repeat image loop?”
    “images”, “url”, “directory containing images”

13.4.4 访问图像和音频文件

【API】java.applet.Applet 1.0:

  • URL getDocumentBase( )
    得到包含这个 applet 的 Web 页面的 URL。
  • URL getCodeBase( )
    得到加载这个 appiet 的代码基目录的 URL。这可以是 codebase 属性引用的目录的绝对 URL , 如果没有指定, 则是 HTML 文件所在目录的 URL。
  • void play( URL url )
  • void play( URL url , String name)
    前一种形式会播放 URL 指定的一个音频文件。第二种形式使用字符串来提供相对于第一个参数中 URL 的一个路径。 如果未找到任何音频剪辑,那么什么也不会发生。
  • AudioClip getAudioClip(URL url)
  • AudioClip getAudioClip(URL url, String name)
    第一种形式从给定 URL 得到一个音频剪辑。 第二种形式使用字符串提供相对于第一个参数中 URL 的一个路径。 如果无法找到音频剪辑, 这两个方法会返回 null。
  • Image getImage(URL url)
  • Image getImage(URL url, String name)
    返回封装了 URL 所指定图像的一个图像对象。 如果图像不存在, 贝立即返回 null。否
    则, 会启动一个单独的线程来加载这个图像。

13.4.5 applet上下文

13.4.6 applet间通信

13.4.7 在浏览器中显示信息项

【API】java.applet.Applet 1.2:

  • public AppletContext getAppletContext ( )
    提供 applet 的浏览器环境的一个句柄。在大多数浏览器中,可以使用这个信息控制运行这个 applet 的浏览器。
  • void showStatus(String msg)
    在浏览器的状态栏中显示指定字符串。

【API】 java.applet.AppletContext 1.0:

  • Enumeration<Applet> getApplets()
    返回相同上下文(也就是相同的 Web 页面)中所有 applet 的一个枚举(见第 9 章)。
  • Applet getApplet(String name)
    返回当前上下文中有指定名的 applet; 如果不存在则返回 null。只会搜索当前 Web 页面。
  • void showDocument(URL url)
  • void showDocument(URL url , String target)
    在浏览器的一个框架中显示一个新 Web 页面。第一种形式中,新页面会替换当前页面。第二种形式使用 target 参数标识目标框架(见表 13-2。)

13.4.8 沙箱

13.4.9 签名代码

13.5 Java Web Start

13.5.1 发布Java Web Start应用

13.5.2 JNLP API

【API】javax.jnlp.ServiceManager:

  • static String[ ] getServiceNames ( )
    返回所有可用的服务名称。
  • static Object lookup( String name )
    返回给定名称的服务。

【API】javax.jnlp.BasicService:

  • URL getCodeBase( )
    返回应用程序的 codebase。
  • boolean isWebBrowserSupported( )
    如果 Web Start 环境可以启动浏览器, 返回 true。
  • boolean showDocument( URL url )
    尝试在浏览器中显示一个给定的 URL。 如果请求成功, 返回 true。

【API】javax.jnlp.FileContents:

  • InputStream getInputStream( )
    返回一个读取文件内容的输入流。
  • OutputStream getOutputStream(boolean overwrite )
    返回一个对文件进行写操作的输出流。 如果 overwrite 为 true, 文件中已有的内容将被覆盖。
  • String getName( )
    返回文件名 (但不是完整的目录路径)。
  • boolean canRead( )boolean canWrite( )
    如果后台文件可以读写, 返回 true。

【API】javax.jnlp.FileOpenService:

  • FileContents openFileDialog( String pathHint, String[ ] extensions )
  • FileContents[ ] openMultiFileDialog( String pathHint, String[ ] extensions )
    显示警告信息并打开文件选择器。返回文件的内容描述符或者用户选择的文件。 如果用户没有选择文件, 返回 null。

【API】javax.jnlp.FileSaveService:

  • FileContents saveFileDialog( String pathHint, String[ ] extensions,InputStream data, String nameHint )
  • FileContents saveAsFileDialog ( String pathHint , String[ ] extensions , FileContents data )
    显示警告信息并打开文件选择器。 写人数据, 并返回文件的内容描述符或者用户选择的文件。如果用户没有选择文件, 返回 null。

【API】javax.jnlp.PersistenceService:

  • long create( URL key, long maxsize)
    对于给定的键创建一个持久性存储条目。返回由持久性存储授予这个条目的最大存储空间。
  • void delete( URL key )
    删除给定键的条目。
  • String[ ] getNames( URL url )
    返回由给定的 URL 开始的全部键的相对键名。
  • `FileContents get(URL key)
    返回用来修改与给定键相关的数据的内容描述符。 如果没有与键相关的条目, 抛出FileNotFoundException。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值