熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

HelloWord 編譯方法以及常見錯誤

2013-11-15 11:35:08  來源: JSP教程 

  不含包層次的HelloWorldjava
  
  public class HelloWorld{ public static void main(String[] args) { Systemoutprintln(Hello World!); }}
  
  保存在E:\java\src下使用javac命令編譯
  E:\java\src>javac HelloWorldjava
  運行
  E:\java\src>java HelloWorld
  屏幕打印出
  Hello World!
  
  初學者常犯的錯誤
   運行時帶了class後綴
  如果你試圖使用如下命令
  E:\java\src>java HelloWorldclass
  系統會誤認為你運行的是HelloWorld包下的名為class的類文件會到系統的CLASSPATH下(一般都包括當前目錄)企圖尋找HelloWorldclassclass這樣的類這樣的類當然不存在了並且也不可能存在因為class是關鍵字不能作為一個類的名字所以會報如下錯誤信息
  Exception in thread main javalangNoClassDefFoundError: HelloWorld/class
  
   文件名大小寫錯誤
  對於像Windows這樣的系統編譯時可以不關心大小寫比如編譯HelloWorldjava時也可以使用
  E:\java\src>javac helloworldjava
  也可以編譯通過但產生的類文件仍然是和源文件相符的HelloWorldclass
  但在運行時一定要注意大小寫比如試圖使用如下命令運行
  E:\java\src>java helloworld
  將報類似於中的錯誤
  Exception in thread main javalangNoClassDefFoundError: helloworld (wrong name: HelloWorld)
  
  包含包層次的HelloWorldjava
  比如上面的HelloWorldjava修改如下
  
  package orgjavaresearch;public class HelloWorld{ public static void main(String[] args) { Systemoutprintln(Hello World!); }}
  
  編譯時有兩種方法
   直接編譯
  E:\java\src>javac HelloWorldjava
  此時在當前目錄下輸出HelloWorldclass此時運行不能使用上面相同的方法使用
  E:\java\src>java HelloWorld
  運行時出現如下錯誤
  Exception in thread main javalangNoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
  從上述錯誤信息你也可以看到系統可以找到HelloWorld類(因為當前路徑包含在CLASSPATH中具體為什麼會提示wrong name有興趣的朋友參見Java語言規范)但這個類屬於orgjavaresearch包所以你要做的就是按照上述包層次相應的創建目錄層次把上面生成的HelloWorldclass放到E:\java\src\org\javaresearch\目錄下運行
  E:\java\src >java orgjavaresearchHelloWorld
  系統打印出
  Hello World!
  這兒要注意的是不能使用java org\javaresearch\HelloWorld來運行此時同樣會出現如下錯誤
  Exception in thread main javalangNoClassDefFoundErrorrg\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)
  哈哈是不是有點怪怪的那沒辦法以後對Java的包有更深的認識時就會明白了
  
   使用 d <directory>編譯選項
  是不是覺得上面的編譯方法有點麻煩能不能自動在當前路徑(或任意指定的路徑)下生成包層次呢?有!使用d <directory>編譯選項就能做到
  E:\java\src >javac d HelloWorldjava
  此時在當前目錄下就生成了一個org\javaresearch目錄並且輸出的class文件也在裡面運行
  E:\java\src >java orgjavaresearchHelloWorld
  系統打印Hello World!
  如果你想把生成的類文件集中存放在一個目錄中比如E:\java\classes下那麼你首先創建這個目錄然後編譯時
  E:\java\src >javac d E:\java\classes HelloWorldjava
  就可以把生成的類文件放到E:\java\classes目錄下並且按照包層次相應的創建目錄路徑你可以在E:\java\classes\org\javaresearch下找到HelloWorldclass文件此時使用如下命令可以正確運行(注意如果要用到其它類請在CLASSPATH中設好)
  E:\java\classes >java orgjavaresearchHelloWorld
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19249.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.