【Java學習筆記】程式發布

來源:互聯網
上載者:User

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

1.要注意的條件
1)合適版本的JRE已經安裝
2)完整的Class
3)資料設定檔
4)可執行命令

2.JAR檔案的基本操作

JAR檔案實際是ZIP檔案,用zip或者unzip就可以操作,但是JAR檔案中含有特殊資訊。jar命令是專門用來操作JAR檔案的,它會自動產生一個叫做mantext的檔案,儲存有相關資訊。
例如:
類Rivers
public class Rivers {
    public static void main(String arg[]) {
        System.out.println(Mississippi.getName());
        System.out.println(Amazon.getName());
        System.out.println(Yukon.getName());
    }
}
-------------------------
類Mississippi
public class Mississippi {
    public static String getName() {
        return("Mississippi");
    }
}
---------------------------
類Amazon
public class Amazon {
    public static String getName() {
        return("Amazon");
    }
}
---------------------------
類Yukon
public class Yukon {
    public static String getName() {
        return("Yukon");
    }
}
建立mantext
Main-Class:<空格>Rivers<斷行符號>
指定了主函數所在類。
Class-Path:Burners.jar
當這個JAR檔案運行時Burners.jar檔案中所有的Class都可用。
然後使用命令建立JAR檔案:jar cfm Wetlands.jar mantext *.class
當然要是有子目錄Image,則可以使用jar cfm Wetlands.jar mantext *.class image
想將目前的目錄下面所有檔案和子檔案夾打成一個jar包,並且要求包中內容和目前的目錄中的相同,則
jar cfM Wetlands.jar *.class -C images .
若不想壓縮打包,則使用 jar cfm0 Wetlands.jar mantext *.class
你可以使用下列命令直接運行JAR檔案:jave -jar Wetlands.jar
顯示JAR包,則使用jar tf Wetlands.jar 或者jar tvf Wetlands.jar

3.JAR檔案的電子簽名

私密金鑰加密,公開金鑰解密,主要用於電子認證。本地檔案keystore儲存了簽名的相關資訊。alias指定了認證的名字。
建立金鑰組:
keytool -genkeypair -keystore .keystore -alias moosebreath -validity 3650
(十年內有效)
簽署JAVA程式:
jarsigner -keystore .keystore Wetlands.jar moosebreath
檢驗是否簽署:
jarsigner -certs -verify Wetlands.jar

4.Web Start發布

1)配置web伺服器:開啟Apache的設定檔httpd.conf,找到AddType添加如下一行:AddType application/x-java-jnlp-file .jnlp
2)將程式打JAR包
3)建立JNLP檔案——JNLP應用程式能使應用程式像標準的Java   applets一樣通過Web瀏覽器訪問,並且在客戶主機上JNLP可以限制為一個安全的“沙箱(sandbox)”。不像applets,JNLP應用程式不運行在客戶的瀏覽器內部;相反,Web瀏覽器只作為應用程式的一個起點或者安裝工具。  以下是一個例子,可以用做模板:
   1. <?xml version="1.0" encoding="GBK"?>
   2. <jnlp
   3.     <!-- 檔案相容的JNLP版本-->
   4.     spec="1.0+"
   5.     <!-- 程式的絕對位置,其它的相對URL都相對於這個位置 -->
   6.     codebase="http://210.43.32.199/apple/"
   7.     <!-- 本檔案的相對URL -->
   8.     href="draw.jnlp">
   9.     <information>
  10.         <!-- 程式標題 -->
  11.         <title>畫圖</title>
  12.         <!-- 程式製作者 -->
  13.         <vendor>Kevin Ma</vendor>
  14.         <!-- 關於這個程式的更多資訊的Web頁,這個頁的URL會被顯示在JAWS的應用程式管理器上 -->
  15.         <homepage href="http://210.43.32.199/apple/drawpic.html/"/>
  16.         <!-- 下面元素會在JAWS上顯示-->
  17.         <description>畫圖</description>
  18.         <description kind="short">
  19.         一個簡單的畫圖軟體
  20.         </description>
  21.         <!-- 指向一個jpg或gif檔案的URL,它會被作為一個表徵圖顯示在JAWS的應用程式管理器中-->
  22.         <icon href="images/draw.gif"/>
  23.         <!--聲明程式在被下載後,不用再訪問伺服器即可運行-->
  24.         <offline-allowed>
  25.     </information>
  26.     <security>
  27.         <!-- 請求給予足夠的許可權對本地機進行訪問,這就要求所有的jar
  28.                        都要被簽名。對於不訪問本地機的程式,此項並非必需
  29.         <all-permissions>
  30.         -->
  31. </security>
  32.     <resources>
  33.         <!-- 指定程式支援的JRE版本。可以指定多個,會按優先順序檢查 -->
  34.         <j2se version="1.4"/>
  35.         <!-- 指定包含代碼和資料的jar檔案的相對URL。 -->
  36.         <jar href="draw_applet.jar"/>
  37.         <!-- 指定將被按需下載的jar檔案
  38.         <jar href="lib/backgrounds.jar"/>
  39.         -->
  40.     </resources>
  41.     <!-- 指定啟動程式的主類 -->
  42.     <application-desc main-class="draw.DrawPic"/>
  43. </jnlp>
4)為這個JNLP建立一個連結:
<a href="colorPicker.jnlp">ColorPicker</a>
5)將你的應用程式上傳到伺服器上
5.注釋
用途:documentation、編譯器指令、運行時檢查。
例子一:
public class AnnotateOne {
    @Overrides
    public String toSting() {
        return("One");
    }
}
這個在編譯的時候會檢查是不是override了方法,要是沒有則會出錯。
並且編譯時間可以消除某一個警告:
import java.util.Vector;
@SuppressWarnings("unchecked","unused","semicolon")
public class AnnotationFour {
    void show() {
        Vector vec = new Vector();
        vec.add("one");
    }
}
你可以定義自己的注釋:
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Documented
@Retention(RetentionPolicy.RUNTIME)//annotation的作用期間
@interface Copyright {//它類似於新建立一個介面類檔案
    String cstr() default "Copyright (c) 2007-2008";
    String comp() default "gnuhpc";
    int version() default 1;
}
@CopyrightVTC
public class AnnotationFive {
    public int returnOne() {
        return(1);
    }
}

 

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.