MacOS下安裝完Java JVM,配置好環境變量後能夠在終端執行一個簡單的java腳本程序,其中先使用javac編譯器將.java文件編譯成字節碼文件,而後經過java解釋器執行字節碼文件。html
1 class Demo{ 2 3 public static void main(String[] args){ 4 System.out.println("hello world!"); 5 } 6 7 }
編寫完後保存爲.java格式,這裏使用終端查看:java
使用javac編譯完成後,執行完後目標文件夾下會多出來一個Demo.class字節碼文件。vim
java命令解釋執行後,發現能夠正常的輸出"hello world",執行OK。spa
如今有個問題,若是我將java文件中類名修改成HelloWorld,會怎樣呢,編譯會有什麼結果,下面在終端下使用vim命令修改了類名以下所示。3d
從新編譯,發現目標文件夾下多出了一個HelloWorld.class的字節碼文件,原來編譯後文件名就是類名,使用java命令能夠正常解釋。code
若是有不少文件,這樣類名和java文件名不一致的狀況應該儘可能避免,這樣能夠添加修飾符public,能夠約束java文件名和文件裏的類名必須保持一致,不然編譯沒法經過,以下就提示了建議修改java文件名和類名一致。htm
若是在java文件中定義多個類也是能夠的,編譯後生成多個class文件。blog
若是在代碼中指定了包名,則使用javac -d 編譯完成後文件夾存放地 java文件命令來編譯,這樣會自動生成文件夾嵌套,並將對應的class文件存放到文件夾下。以下圖所示在Demo.java文件中添加了包名com.boe.exer,使用命令後就在當前文件目錄下生成多級目錄,並能夠使用javac來執行,可是須要寫class文件包名+類名。get
(1)Java執行需先將代碼轉換成字節碼文件,字節碼文件被解釋器執行解釋後變成機器碼,機器碼才能被計算機識別執行。編譯器
(2)編譯命令:javac 編譯的java文件全名,包括文件類型java。
(3)運行命令:java 要運行的class文件名,通常爲一個類對應一個class文件