国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

HelloWord編譯方法以及常見錯誤

2019-11-18 11:15:17
字體:
供稿:網(wǎng)友

  不含包層次的HelloWorld.java
  
  public class HelloWorld{ public static void main(String[] args) { System.out.  
  保存在E:/java/src下,使用javac命令編譯:
  E:/java/src>javac HelloWorld.java
  運行:
  E:/java/src>java HelloWorld
  屏幕打印出:
  Hello World!
  
  初學(xué)者常犯的錯誤
  1. 運行時,帶了.class后綴
  假如你試圖使用如下命令:
  E:/java/src>java HelloWorld.class
  系統(tǒng)會誤認(rèn)為你運行的是HelloWorld包下的名為class的類文件,會到系統(tǒng)的CLASSPATH下(一般都包括當(dāng)前目錄)企圖尋找HelloWorld.class.class這樣的類,這樣的類當(dāng)然不存在了;并且也不可能存在,因為class是要害字,不能作為一個類的名字。所以會報如下錯誤信息:
  Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
  
  2. 文件名大小寫錯誤
  對于像Windows這樣的系統(tǒng),編譯時可以不關(guān)心大小寫。比如編譯HelloWorld.java時,也可以使用:
  E:/java/src>javac helloworld.java
  也可以編譯通過,但產(chǎn)生的類文件仍然是和源文件相符的:HelloWorld.class。
  但在運行時一定要注重大小寫,比如試圖使用如下命令運行:
  E:/java/src>java helloworld
  將報類似于1中的錯誤:
  Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)
  
  包含包層次的HelloWorld.java
  比如上面的HelloWorld.java修改如下:
  
  package org.javaresearch;public class HelloWorld{ public static void main(String[] args) { System.out.println("Hello World!"); }}
  
  編譯時有兩種方法
  1. 直接編譯
  E:/java/src>javac HelloWorld.java
  此時在當(dāng)前目錄下輸出HelloWorld.class。此時,運行不能使用上面相同的方法,使用:
  E:/java/src>java HelloWorld
  運行時,出現(xiàn)如下錯誤:
  Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
  從上述錯誤信息你也可以看到,系統(tǒng)可以找到HelloWorld類(因為當(dāng)前路徑包含在CLASSPATH中,具體為什么會提示wrong name,有愛好的朋友參見Java語言規(guī)范),但這個類屬于org.javaresearch包。所以,你要做的就是按照上述包層次,相應(yīng)的創(chuàng)建目錄層次,把上面生成的HelloWorld.class放到E:/java/src/org/javaresearch/目錄下。運行:
  E:/java/src >java org.javaresearch.HelloWorld
  系統(tǒng)打印出:
  Hello World!
  這兒要注重的是,不能使用java org/javaresearch/HelloWorld來運行,此時同樣會出現(xiàn)如下錯誤:
  Exception in thread "main" java.lang.NoClassDefFoundErrorrg/javaresearch/HelloWorld (wrong name: org/javaresearch/HelloWorld)
  哈哈,是不是有點怪怪的,那沒辦法。以后對Java的包有更深的熟悉時,就會明白了。
  
  2. 使用 -d <Directory>編譯選項
  是不是覺得上面的編譯方法有點麻煩,能不能自動在當(dāng)前路徑(或任意指定的路徑)下生成包層次呢?有!使用-d <directory>編譯選項就能做到。
  E:/java/src >javac -d . HelloWorld.java
  此時,在當(dāng)前目錄下就生成了一個org/javaresearch目錄,并且輸出的.class文件也在里面。運行:
  E:/java/src >java org.javaresearch.HelloWorld
  系統(tǒng)打印:Hello World!
  假如你想把生成的類文件集中存放在一個目錄中,比如:E:/java/classes下,那么你首先創(chuàng)建這個目錄,然后編譯時:
  E:/java/src >javac -d E:/java/classes HelloWorld.java
  就可以把生成的類文件放到E:/java/classes目錄下,并且按照包層次相應(yīng)的創(chuàng)建目錄路徑。你可以在E:/java/classes/org/javaresearch下找到HelloWorld.class文件。此時使用如下命令可以正確運行(注重假如要用到其它類,請在CLASSPATH中設(shè)好):
  E:/java/classes >java org.javaresearch.HelloWorld

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 松江区| 潼关县| 福贡县| 遵义市| 威海市| 台中市| 固镇县| 灵台县| 乌恰县| 吐鲁番市| 承德县| 沂源县| 扶绥县| 扎兰屯市| 内江市| 石嘴山市| 潞城市| 娄底市| 特克斯县| 华池县| 奎屯市| 鹿邑县| 儋州市| 河北省| 新乡市| 礼泉县| 盖州市| 宜州市| 南部县| 宝兴县| 平凉市| 呈贡县| 通辽市| 卓资县| 汤阴县| 鹤岗市| 苍溪县| 大悟县| 银川市| 杭锦后旗| 衡阳市|