中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

JAVA基礎(chǔ):從簡單程序看java運(yùn)行錯(cuò)誤

2018-06-11    來源:

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

  問HelloWorld問題的人實(shí)在是太多了,而且經(jīng)常都以“問一個(gè)最簡單的問題”開頭。其實(shí)回想一下,自己也是從這個(gè)階段過來的,說一句“你好”,真的是一個(gè)最簡單的問題嗎?
??首先,我們要假設(shè)一下我們的平臺(tái)是Windows+JDK(Linux環(huán)境下也差不多)。這個(gè)環(huán)境是相當(dāng)普遍、基礎(chǔ)和入門的。確定已經(jīng)正確安裝JDK了,下一步是小心翼翼地敲入某本教程上的HelloWorld源碼,存盤,然后編譯,javac ...問題來了:

??* 錯(cuò)誤1:

??'javac' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件。
??(javac: Command not found)

??產(chǎn)生的原因是沒有設(shè)置好環(huán)境變量path。
??Win98下在autoexce.bat中加入path=%path%;c:jdk1.2in
??Win2000下則控制面板->系統(tǒng)->高級(jí)->環(huán)境變量->系統(tǒng)變量...看到了?雙擊Path,在后面加上c:jdk1.2in。
??當(dāng)然我們假設(shè)JDK安裝在了c:jdk1.2目錄下
??好,再試試!javac HelloWorld

??* 錯(cuò)誤2:

??HelloWorld is an invalid option or argument.

??拜托,給點(diǎn)專業(yè)精神,java的源程序是一定要存成.java文件的,而且編譯時(shí)要寫全.java呀。
??OK,javac HelloWorld.java (這回總該成了吧?)

??* 錯(cuò)誤3:

??HelloWorld.java:1: Public class helloworld must be defined in a file called
??"HelloWorld.java".public class helloworld{

??這個(gè)問題嘛,是因?yàn)槟愕念惖拿峙c文件的名字不一致。(誰說的,明明看到人家都有這樣寫的)OK,準(zhǔn)確地說,一個(gè)Java源程序中可以定義多個(gè)類,但是,具有public屬性的類只能有一個(gè),而且要與文件名相一致。還有,main方法一定要放在這個(gè)public的類之中,這樣才能java(運(yùn)行)這個(gè)類。另外一點(diǎn)是Java語言里面是嚴(yán)格區(qū)分大小寫的,初學(xué)者要注意呀。像上例中 helloworld 與 HelloWorld 就認(rèn)為是不一樣,因而...
??oh... 好,改好了,嘻嘻...

??javac HelloWorld.java
??...(咦,怎么什么也沒有呀?)//faint 這就是編譯通過了!看看是不是多了一個(gè)HelloWorld.class?
??按書上教的 java HelloWorld?(不是java HelloWorld.class喲,因?yàn)樵趈2ee規(guī)范中java指令中的“.”是指路徑的意思,如果是java HelloWorld.class 那么系統(tǒng)就會(huì)查找HelloWorld目錄下的class.class文件,這樣當(dāng)然是不可能存在的)。

??* 錯(cuò)誤4:

??Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

??呵呵,這個(gè)嘛,就是著名的類路徑(classpath)問題啦。實(shí)際上,類路徑是在編譯過程就涉及的Java中的概念。classpath就是指明去哪里找用到的類,就這么簡單。由于我們的HelloWorld沒用到其它的(非java.lang包中的)類,所以編譯時(shí)沒遇到這個(gè)問題。運(yùn)行時(shí)呢,就要指明你的類在哪里了。解決方法嘛,可以用下面的命令運(yùn)行:

??java -classpath . HelloWorld
??“.”就代表當(dāng)前目錄。當(dāng)然這樣做有點(diǎn)麻煩(是“太麻煩”!),我們可以在環(huán)境變量中設(shè)置默認(rèn)的classpath。方法就照上述設(shè)置path那樣。將classpath設(shè)為:classpath=.;c:jdk1.2libdt.jar;c:jdk1.2lib ools.jar 后面的兩個(gè)建議也設(shè)上,以后開發(fā)用的著。

??java -classpath . HelloWorld(再不出來我就不學(xué)java了)

??* 錯(cuò)誤5:

??Exception in thread "main" java.lang.NoSuchMethodError: main

??(//咣當(dāng))別,堅(jiān)持住。看看你的代碼,問題出在main方法的定義上,寫對地方了嗎,是這樣寫的嗎:

??public static void main(String args[]) { // 一個(gè)字都不要差,先別問為什么了...對,包括大小寫!

??java -classpath . HelloWorld (聽天由命了。
??Hello World!

??(faint!終于...)

??歡迎來到Java世界!所以說,無法運(yùn)行HelloWorld 真的并不是一個(gè)“最簡單的問題”。

??附:HelloWorld.java
// HelloWorld.java
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}

標(biāo)簽: linux ssd 代碼 問題

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:傳戴爾首款A(yù)MD版筆記本擬采用ATi圖形芯片

下一篇:誰在催生網(wǎng)癮