Java程序的編譯和運行
Java程序的編譯程序是Javac.exe,它是負責說明履行編譯後的字節碼。
我們只需要明白一個標題,編譯是應用Javac程序對源Java文件的編譯,運行是用Java這個工具程序(在Windows平台是Java.exe)來運行一個類(.class文件),但類文件的擴大名可以省略不寫。
注:Class文件是Java程序的可履行代碼,稱為Class文件。Javac將Java文件編譯成字節碼,也就是Class文件。
Javac的用法如下:
Javac -g-O-debug-depend-nowarn-verbose-classpath path-nowrite-d dir
-d directory 指明類層次的根目錄。用javac -d DIR yourfile.Java編譯後可以把生產的.class文件存放在DIR目錄裡。
-classpath path 定義Javac搜索類的路徑。它將籠罩缺省的CLASSPATH環境變量的設置。
對於具體的參數設置,可以用Javac -help查看幫助。一般情況下,你只需要簡略地應用下面的命令編譯和運行Java程序就行了。
編譯:javac filename.Java
履行:Java yourClass
編程演練
先動手寫出一個程序,在運行起來時會很有成績感的,所以許多講編程語言的書都會不失機會地用一個簡略的程序來領導讀者。這的確是個不錯的主意,有了成功的體驗,信任接下來的學習就難不倒你了。
我們先看看兩個簡略的Java程序:例一:把持台(俗稱DOS窗口)裡輸出Hello World,讓你喝上第一杯咖啡
//filename HelloworldApp.Java
import Java.io.//引進Java包 public class HelloworldApp //定義類名 public static void mainString args //主方法,程序從這裡開端履行 System.out.println″Hellothis is a simply test ″//輸出字符串,字符串用引號括起來 //程序結束怎麼編譯、運行一個程序呢?上一期我們先容了JDK,現在我們裝好JDK後,先將上面的代碼保留到一個文本文件HelloworldApp.Java。
然後在當前目錄下運行javac HelloworldApp.Java
可能你需要等候幾秒鐘才干編譯完成。現在看看,目錄下是不是多了一個HelloworldApp.class?
OK,再運行Java HelloworldApp,現在你會看到程序的輸出成果:Hellothis is a simply test !提示:假如呈現“Exception in thread ″main″ java.lang.NoClassDefFoundErrorHelloWorldApp ”錯誤,那麼,需要設置你的Classpath的路徑(你應當先設置好環境變量),在Helloworldapp.class確當前目錄下運行“set classpath=.”命令來設置classpath為當前目錄。然後運行Java test就不會出錯了或者請參考前一期的環境配置一節。
現在,程序運行起來了 那我現在告訴你,以“//”開端的部分為Java程序的注釋,每一個語句以分號結束……
例二:編寫一個簡略的窗口程序
也許,你對這種只能在把持台下運行的程序不太感愛好吧!那好,下面我們看一個能在Windows下運行的Hello World程序。
/文件名:test.Java/
/
The first program.
@author warton
@version 1.0 2004-01-01
/
import Javax.swing.JOptionPane //需要調用JOptionPane類
public class test //定義類名
public static void mainString args //開端main方法
//顯示一個消息框
JOptionPane.showMessageDialognull ″Hello this is a basic Java program ″
System.exit0 // 程序結束
//結束method
//結束Class
編譯並運行程序。
演練代碼分析
現在我們來分析一下,上面兩個經典的Hello World程序的結構,以便讓你舉一反三,寫出比Hello World更經典的程序。
其中,import為引進Java包,如語句import Java.io.引進Java基礎IO包,並以分號結束。
IO包package含各種輸進輸出流把持,就如同C/C++語言中的#include ″stdio.h″或#include ″iOStream″差未幾。與C++語言中不同的是Java的程序以一個Class開端:public class test定義一個public類型的test類,類的履行從main()方法開端履行,和c/c++語言中的main()函數類似。
public class test定義了一個類,類是公共public類型的,類名為test。要留心的是Java中主類名應當和要保留的Java文件名雷同。也就是說,這裡定義的類名是test則文件應當保留成test.java(這樣,我們編譯就用javac test.java命令運行這個類就用Java test命令)。
Main()方法中有參數String args,用於從命令行向利用程序傳送參數。我們可以用args0args1...argsn來拜訪這些參數。比如用System.out.printlnargs0來輸出第一個命令行參數,這一點和C語言很類似。
import Javax.swing.JOptionPane引進了Java的界面設計包Swing中的JOptionPane類。JOptionPane.showMessageDialog方法顯示出一個消息框。
System.exit0則是退出程序。
//之前的部分為代碼注釋,//之間的@開頭的標記就是javadoc標記(這將在後續章節中具體講解,不過現在可以先運行“javadoc -d doc -author -version test.Java”試試,你會看到當前目錄下多了一個DOC文件夾,裡面有Javadoc天生的美麗的Html文檔)。
加強懂得
信任不少朋友在學校必定學過C/C++語言吧!為了讓你更深進地懂得第一個例程,我們先用一個C語言程序來闡明。當然你假如沒有C/C++語言基礎的話,可以跳過。
#include ″stdio.h″//引進頭文件
main//C++的main函數,相當於Java的main方法(在Java裡,是類的一個方法,稱為Method)
printf″This is a simply test \n″//輸出字符串
//結束
也許你的編程起步是從C++語言開端的,基本沒接觸過純C語言,那麼很簡略,我們用純C++語言來描寫一下這個程序:
#include ″iostream.h″//按C++語言尺度應當寫在#include″ iOStream″
void mainvoid//c++程序開端履行
cout<<″This is a simply test ″<<endl
現在你是不是對這個程序一目了然了?看看,Java的注釋、語句都跟C++很類似!