點擊查看:2015計算機等級考試二級Java入門教程章節(jié)匯總
點擊查看:2015計算機等級考試二級Java入門教程第一章匯總
1.3 Java環(huán)境
你可以在各種類型的計算機上使用各種操作系統(tǒng)運行Java程序。Java程序在PC機的Windaws 95/98/NT上運行,與在Sun Solaris工作站上運行的效果一樣出色。這是由于Java程序不直接在計算機上運行,它運行在一個標準的被稱為Java虛擬機(Java virtual machine)的假想計算機中,這種虛擬機是在你的計算機中用程序仿真的,如下圖所示。
你編寫的Java源代碼被Java編譯器轉換為由字節(jié)碼( byte codes)組成的二進制程序。字節(jié)碼是Java虛擬機的機器指令。在你執(zhí)行Java程序時,一個稱為Java解釋器(Javainterpreter)的程序將檢查、解釋這些字節(jié)碼,驗證并確保它沒有被篡改,可以安全運行。然后,在Java虛擬機內執(zhí)行解釋的字節(jié)碼。3ava解釋器可以單獨地運行,也可以作為Web瀏覽器的一部分運行。比如Netscape Navigator或者Micrasaft Internet Explorer,都可以自地調用并執(zhí)行包含在Web網頁中的小應用程序。
因為Java程序是由字節(jié)碼組成的,而不是原始的機器指令,所以與運行它的特定硬件完全無關。任何計算機只要實現(xiàn)Java的環(huán)境,就可以像其他計算機一樣運行Java程序。由于Java解釋器位于程序和物理機器之間,它可以阻止執(zhí)行那些在程序中未經認一可的操作。在過去,所有這些靈活性和保護作用的獲得都伴隨著性能的損失,這主要反映在執(zhí)行速度上。一個被解釋的Java程序的運行速度僅是使用內部機器指令的相應程序的十分之一。例如,對于那些主要不是用于計算的程序(包含在Web網頁中的程序就屬于這類程序),你不必很注重速度問題。如果你碰巧有一個支持程序實時編譯("Just-In-Time" compilation)的Java環(huán)境,就不必擔心這些性能的損失。當它們被加載時,快速編譯器可以把你的Java程序轉換為內部的機器指令。程序的加載時間會稍長一些,但加載成功后,就會以最高的速度運行。
Java程序開發(fā)有很多優(yōu)秀的Java程序開發(fā)環(huán)境,包括Sun, Borland、Symanteu的產品。它們都提供了非常友好的環(huán)境來建立、編輯源代碼,編譯和調試源程序。價格最低的Java程序開發(fā)包無疑是免費獲得的Sun公司的Java開發(fā)工具〔IDK ),但使用起來并不很方便。對于不同的硬件平臺和操作系統(tǒng),你可以從公司Sun Java站點的http:ffjava.sun.com網址中下載。即使你正在使用這種或者那種交互式的開發(fā)環(huán)境,我也建議你安裝JDk,它為你提供了一個優(yōu)秀的引用環(huán)境來檢查可能出現(xiàn)的問題。使用Java產品提供的Java版本并不一定是最新的,所以如果你在一個商業(yè)化的Java開發(fā)系統(tǒng)下運行書中的例子出現(xiàn)了問題,就應該用JDK試看。這個環(huán)境會使程序很好地運行。
用運行一個java應用程序Java源代碼總是存儲在擴展名為。java的文件中。一旦你為程序建立了源代碼,并且把它存儲在jawa的文件中,就需要用一個Java編譯器處理該程序。使用JDK編譯器,你可以用下述命令進行操作:
<./HEAD>
<BODY>
需要的文字,文檔豬蹄可以包含各種HTML元素,包括<B>Java小應用程序</a>,注意每個元素都用一對標記標識。下文中Java小應用程序將用粗體顯示
</BODY>
</HTML>
]avaC MyPrpqram.java這里,java是Java編譯器的名稱,MyProgramjarea是程序的源文件名稱。如果你的程序沒有錯誤,編譯器就會產生一個等效于源代碼的字節(jié)碼程序。它以源文件相同的名字保在<HTML>中出現(xiàn)了兩個元素,一個是<HEAD>元素,另一個是<BODY>元素。<HEAD>元素提供了有關文檔的信息。從嚴格意義上講,它并不是<HTML>元素的一部分。<HEAD>元素內出現(xiàn)的由兩個<TTTLE>標記所包含的文字,在瀏覽該網頁時,將顯示在窗口的標題上。出現(xiàn)在<BODY>元素內的其他標記可以包含標題、列表、表格、到其他網頁的鏈接以及Java小應用程序。因為有些元素被認為是空的,所以不要求結尾標記。這種類型的元素標記有<HR>,它指出一條占據該網頁總寬度的水平線段。你可以使用<HR>標記分頁,也可以用它來隔離不同類型的元素。我在前面提到過,你會在本書中找到一個HTML工標記的綜合列表。用將一個小應用程序添加到HTML文件中對于許多元素標記而言,你可以在標記開始后說明元素的屬性,用來定義有關該元素附加或限定的數據。Java小應用程序是以<APPLET>標記識別的。這里是一個在HTML文件中包含Java小應用程序的例子:
<HTML>
<HEAD>
<TITLE> A Simple Program </TITLE>
</HEAD>
<BODY>
<HR>
<APPLET code =”MyfirstApplet.clase’ width = 3000; height = 200>
</APPLET>
<HR>
</BODY>
</HTML>
標記之間的兩個陰影行標明小應用程序的字節(jié)碼包含在MyFirstApplet.class文件中。<APPLET>標記中的屬性值code說明了包含小應用程序字節(jié)碼的文件名。另兩個屬性值width和height定義了小應用程序執(zhí)行時占據屏幕區(qū)域的寬度和高度。這些屬性是執(zhí)行小應用程序必須定義的。正像我們將要看到的,有很多標記可以有選擇地指定。這里是一個簡單的小應用程序的Java源代碼:
Import java.swing.Japplet;
Import java.awt.Graphics;
Public class MyFirstApplet extends Japplet
{
Public void paint{Graphics g}
{
g.drawString{‘to climb a laoder,start at the bottom rung’,20, 30};
}
}
注意:Java對于大小寫敏感。你不能用一個大寫字母P來輸入public,否則該程序冷不會通過編譯。若運行該小應用程序,將會顯示一條信息。如何顯示信息并不是此時所習介紹的,我們只關心一個小應用程序如何被嵌入到HTMZ.網頁中。如果你將這段代碼進于編譯,并作為Java小應用程序代碼存儲在與前面說明的HTML.網頁文件MyFirstApplet.htm! 同一個目錄下,你就可以利用JDK中的appletviewer運行這段小應用程序。其命令為:
appletV}eweY MyFirstApplet .html
其結果將顯示如下所示的窗口內容:
這是產生于Windows 95/98/NT下的窗曰。在其他操作系統(tǒng)中,可能略有不同。這是因為Java將服從運行平臺的風格。由于小應用程序窗口的高度和寬度是以像素為單位說明的,所以窗口的物理大小將取決于顯示器的分辨率和尺寸。圃在任何瀏覽器中運行小應用程序ITML3.2中介紹的APPLET標記在HTML4.0中己被oBJECT標記取代。然而,現(xiàn)在Internet Explorer還支持這個標記,而IVetscape NaVigator則使用EMBED標記。為了使內容更加有趣,你不能指望客戶端瀏覽器擁有最新型的虛擬機,所以與上述代碼等價的使用OBJECT標記的代碼是:
<OBJECT
WIDTH = 3000
HELGHT = 200>
<PARAM NAMR = COBE VALUE = MyPiratApplet,class>
<PARAM NAMR = TYPE VALUE = ‘application/x=java=applet;veraion=1.2’>
</OBJECT>
這段代碼不能在Internet Explorer 4上運行,除非它有能找到JApplet類的虛擬機。JavaSoft發(fā)布了一個java插件產品,它能夠把最新型的虛擬機插入Web網頁瀏覽器中。使用該產品,可以確保小應用程序在客戶端得到運行,即使在支持舊版本的Java瀏覽器中也是如此。為了使用插件技術制作一個Netscape和Internet Explorer都能使用的HTML工網頁,你應該使用下列代碼:
<OBJECT CLASSID = ‘clasid; 8AD9C840-044E-LID1-B3E9-00805F499D93‘
Width = 300
在這里,OBJECT標記有CLASSID和CDDEBASE屬性,用來放置Window:平臺的Java插件。在Internet Explorer中,COMMENT標記允許EMBED標記在瀏覽器中被隱藏起來。
而Netscape Navigator將讀取它,并且從JavaSoft獲得一個與之匹配的Java插件。Appletviewer不支持這三個標記。在本書的剩余部分,我們將根據需要使用APPLET標記。正像你希望看到的,原來在APPLET標記中的代碼,可以被大批地剪切并粘貼到上面清單中的OBJECT和EMED標記內。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |