国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 全椒县| 余庆县| 绩溪县| 噶尔县| 和顺县| 郯城县| 鄂托克旗| 耿马| 肥东县| 天柱县| 长海县| 渭源县| 宝应县| 喀喇沁旗| 长沙县| 怀宁县| 离岛区| 安顺市| 厦门市| 石屏县| 上饶市| 岐山县| 西贡区| 孝义市| 苍南县| 盐津县| 湾仔区| 沾益县| 商城县| 吴忠市| 江陵县| 阿拉尔市| 平乡县| 南昌县| 井研县| 磐石市| 平阴县| 磐石市| 忻州市| 静安区| 郯城县|