未在JDK(例如javax.websocket
)包括需要的軟件包下載和爲了與-cp
或CLASSPATH
環境變量引用到要導入(否則你得到的編譯錯誤包X不存在)。彙編後,導入的軟件包是否包含在.class文件中?
編譯,當獲得的.class文件後,是否可以將這些文件傳輸到不有javax.websocket
包,並有該計算機上的JVM上運行它們,或者是有必要的計算機兩臺計算機上都有這個軟件包?
換句話說:當您編寫import bar.foo;
時,您基本上在編寫「每當您看到foo
時,請轉至此位置並查看它是什麼。」。但是,在編譯源代碼時,字節代碼是否仍然說「去這個位置並看看它是什麼」,或者它已經到達位置並「導入」了所有內容,以便位置不再需要?
請注意,'import'語句僅用於編譯。他們在運行時什麼都不做。見[這個答案](http://stackoverflow.com/questions/1457863/what-causes-and-what-are-the-differences-between-noclassdeffounderror-and-classn?lq=1)。是的,如果你打算使用一個類,它需要在運行時可用。 –
您還需要在運行時使用外部庫 – Sanjeev
@SotiriosDelimanolis您是否認爲如果Java設計人員允許您在沒有它們的情況下編譯源代碼,那麼可以省略任何導入語句,只要您確保包可用在運行時? – Gendarme