成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java? 教程(常見問題及其解決方案)

netmou / 2541人閱讀

常見問題(及其解決方案) 編譯器的問題

Microsoft Windows系統(tǒng)上常見的錯誤消息。

"javac" is not recognized as an internal or external command, operable program or batch file

如果你收到這個錯誤,Windows將無法找到編譯器(javac)。

這里有一種方法可以告訴Windows哪里可以找到j(luò)avac,假設(shè)你在C:jdk1.8.0中安裝了JDK,在提示符處輸入以下命令并按Enter鍵:

C:jdk1.8.0injavac HelloWorldApp.java

如果你選擇此選項,你必須在你的javacjava命令之前使用C:jdk1.8.0in,每次編譯或運行一個程序時,為了避免這種額外的輸入,請參考JDK 8安裝說明中更新PATH變量的部分。

Class names, "HelloWorldApp", are only accepted if annotation processing is explicitly requested

如果收到此錯誤,則在編譯程序時忘記包含.java后綴,記住,這個命令是javac HelloWorldApp.java,不是javac HelloWorldApp。

UNIX系統(tǒng)上常見的錯誤消息
javac: Command not found

如果你收到這個錯誤,UNIX將無法找到編譯器javac。

有一種方法可以告訴UNIX在哪里找到javac,假設(shè)你在/usr/local/jdk1.8.0中安裝了JDK,在提示符下輸入以下命令并按回車:

/usr/local/jdk1.8.0/javac HelloWorldApp.java
如果你選擇此選項,那么每次編譯或運行一個程序時,你都必須在你的javac和java命令之前加上/usr/local/jdk1.8.0/,為了避免這種額外的輸入,你可以將這些信息添加到PATH變量中,這樣做的步驟將根據(jù)當(dāng)前運行的shell而有所不同。
Class names, "HelloWorldApp", are only accepted if annotation processing is explicitly requested

如果收到此錯誤,則在編譯程序時忘記包含.java后綴,記住,這個命令是javac HelloWorldApp.java,不是javac HelloWorldApp

語法錯誤(所有平臺)

如果你錯誤地編寫程序的一部分,編譯器可能會發(fā)出語法錯誤,消息通常顯示錯誤的類型、檢測錯誤的行號、行上的代碼以及代碼中錯誤的位置,在語句末尾省略分號(;)會導(dǎo)致以下錯誤:

testing.java:14: `;" expected.
System.out.println("Input has " + count + " chars.")
                                                     ^
1 error

有時,編譯器無法猜測你的意圖,如果錯誤級聯(lián)超過幾行,則會打印出混亂的錯誤消息或多個錯誤消息,例如,下面的代碼片段省略了粗體行中的分號(;):

while (System.in.read() != -1)
    count++
System.out.println("Input has " + count + " chars."); 

在處理此代碼時,編譯器發(fā)出兩個錯誤消息:

testing.java:13: Invalid type expression.
        count++
                 ^
testing.java:14: Invalid declaration.
    System.out.println("Input has " + count + " chars.");
                      ^
2 errors

編譯器發(fā)出兩個錯誤消息,因為在它處理count++之后,編譯器的狀態(tài)表明它位于表達式的中間,如果沒有分號,編譯器就無法知道語句是否完整。

如果你看到任何編譯錯誤,那么你的程序沒有成功編譯,編譯器也沒有創(chuàng)建.class文件,仔細檢查程序,修復(fù)你檢測到的任何錯誤,然后再次嘗試。

語義錯誤

除了驗證你的程序語法正確之外,編譯器還檢查其他基本正確性,例如,每次使用未初始化的變量時,編譯器都會警告你:

testing.java:13: Variable count may not have been initialized.
        count++
        ^
testing.java:14: Variable count may not have been initialized.
    System.out.println("Input has " + count + " chars.");
                                       ^
2 errors

同樣,你的程序沒有成功編譯,編譯器也沒有創(chuàng)建.class文件,修復(fù)錯誤并再次嘗試。

運行時的問題

Microsoft Windows系統(tǒng)上的錯誤消息。

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp

如果你收到此錯誤,java將無法找到你的字節(jié)碼文件HelloWorldApp.class。

java試圖找到.class文件的地方之一是當(dāng)前目錄,因此,如果你的.class文件在C:java中,你應(yīng)該將當(dāng)前目錄更改為C:java,若要更改目錄,請在提示符處輸入以下命令,然后按回車鍵:

cd c:java

他的提示應(yīng)該更改為C:java>,如果在提示符處輸入dir,應(yīng)該會看到.java.class文件,現(xiàn)在再次輸入java HelloWorldApp。

如果仍然有問題,你可能需要更改CLASSPATH變量,要查看是否需要這樣做,請嘗試使用以下命令對類路徑進行截斷。

set CLASSPATH=

現(xiàn)在再次輸入java HelloWorldApp,如果該程序現(xiàn)在可以工作,那么你必須更改CLASSPATH變量,要設(shè)置此變量,請參閱JDK 8安裝說明中更新路徑變量一節(jié),CLASSPATH變量的設(shè)置方式相同。

Could not find or load main class HelloWorldApp.class

初學(xué)者程序員常犯的一個錯誤是嘗試在編譯器創(chuàng)建的.class文件上運行java啟動程序,例如,如果你試圖使用HelloWorldApp.class而不是java HelloWorldApp運行程序,你將會得到這個錯誤。記住,參數(shù)是要使用的類的名稱,而不是文件名。

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

Java VM要求使用它的類有一個main方法來開始執(zhí)行應(yīng)用程序,詳解“Hello World!”應(yīng)用中詳細討論了main方法。

UNIX系統(tǒng)上的錯誤消息
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp

如果你收到此錯誤,java將無法找到你的字節(jié)碼文件HelloWorldApp.class。

java試圖找到你的字節(jié)碼文件的地方之一是當(dāng)前目錄,例如,如果你的字節(jié)碼文件位于/home/jdoe/java中,你應(yīng)該將當(dāng)前目錄更改為該目錄,若要更改目錄,請在提示符處輸入以下命令并按回車:

cd /home/jdoe/java

如果在提示符處輸入pwd,應(yīng)該會看到/home/jdoe/java,如果在提示符處輸入ls,應(yīng)該會看到.java.class文件,現(xiàn)在再次輸入java HelloWorldApp。

如果你仍然有問題,你可能需要更改CLASSPATH環(huán)境變量,要查看是否需要這樣做,請嘗試使用以下命令對類路徑進行截斷。

unset CLASSPATH

現(xiàn)在再次輸入java HelloWorldApp,如果該程序現(xiàn)在可以工作,那么你將必須以與上面的PATH變量相同的方式更改CLASSPATH變量。

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp/class

初學(xué)者程序員常犯的一個錯誤是嘗試在編譯器創(chuàng)建的.class文件上運行java啟動程序,例如,如果你試圖使用HelloWorldApp.class而不是java HelloWorldApp運行程序,你將會得到這個錯誤。記住,參數(shù)是要使用的類的名稱,而不是文件名。

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

Java VM要求使用它的類有一個主要的方法來開始執(zhí)行應(yīng)用程序,詳解“Hello World!”應(yīng)用中詳細討論了main方法。

Applet或Java Web Start應(yīng)用程序被阻塞

如果你正在通過瀏覽器運行一個應(yīng)用程序,并得到安全警告說該應(yīng)用程序被阻塞,請檢查以下條目:

驗證JAR文件清單中的屬性是否為應(yīng)用程序正在運行的環(huán)境正確設(shè)置,需要使用Permissions屬性,在NetBeans項目中,你可以通過擴展項目文件夾和雙擊manifest.mf,從NetBeans IDE的Files選項卡中打開清單文件。

驗證應(yīng)用程序是由一個有效的證書簽名的,并且該證書位于簽名者CA keystore中。

如果你正在運行一個本地applet,請設(shè)置一個用于測試的web服務(wù)器,你還可以將應(yīng)用程序添加到異常站點列表中,該列表在Java控制面板的Security選項卡中進行管理。

上一篇:仔細看看“Hello World!”應(yīng)用程序 下一篇:面向?qū)ο缶幊谈拍?/b>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76425.html

相關(guān)文章

  • Java? 教程(“Hello World!”應(yīng)用程序)

    Hello World!應(yīng)用程序 下面列出的小節(jié)提供了編譯和運行一個簡單的Hello World!應(yīng)用程序的詳細說明,第一部分提供了關(guān)于使用NetBeans IDE入門的信息,集成開發(fā)環(huán)境極大地簡化了軟件開發(fā)過程。NetBeans IDE運行在下面列出的所有平臺上,其余部分提供了特定于平臺的指示,用于在沒有集成開發(fā)環(huán)境的情況下啟動。如果遇到問題,一定要參考常見問題部分,它為新用戶遇到的許多問題提供...

    skinner 評論0 收藏0
  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實踐沒有利用在后續(xù)版本中引入的改進。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實用指南,其中包括數(shù)百個完整的工作示例和數(shù)十個課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...

    lifesimple 評論0 收藏0
  • Java? 教程(仔細看看“Hello World!”應(yīng)用程序)

    仔細看看Hello World!應(yīng)用程序 現(xiàn)在你已經(jīng)看到了Hello World!應(yīng)用程序(甚至可能編譯并運行它),你可能想知道它是如何工作的,這是它的代碼: class HelloWorldApp { public static void main(String[] args) { System.out.println(Hello World!); // Display ...

    zollero 評論0 收藏0
  • 架構(gòu)~微服務(wù)

    摘要:接下來繼續(xù)介紹三種架構(gòu)模式,分別是查詢分離模式微服務(wù)模式多級緩存模式。分布式應(yīng)用程序可以基于實現(xiàn)諸如數(shù)據(jù)發(fā)布訂閱負(fù)載均衡命名服務(wù)分布式協(xié)調(diào)通知集群管理選舉分布式鎖和分布式隊列等功能。 SpringCloud 分布式配置 SpringCloud 分布式配置 史上最簡單的 SpringCloud 教程 | 第九篇: 服務(wù)鏈路追蹤 (Spring Cloud Sleuth) 史上最簡單的 S...

    xinhaip 評論0 收藏0
  • Java? 教程(Object作為超類)

    Object作為超類 java.lang包中的Object類位于類層次結(jié)構(gòu)樹的頂部,每個類都是Object類的直接或間接的后代,你使用或編寫的每個類都繼承Object的實例方法,你不需要使用任何這些方法,但是,如果你選擇這樣做,你可能需要使用特定于你的類的代碼重寫它們,本節(jié)中討論的從Object繼承的方法是: protected Object clone() throws CloneNotSu...

    RichardXG 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<