我無法找到正確的原因。在main方法中獲取異常的主要方法中的靜態鍵名「main」java.lang.NoSuchMethodError:main
public class MainTest {
static public void main(String[] args) {
System.out.println("HAI");
}
}
當我運行這段代碼的輸出是:HAI
static class MainTest {
static void main(String[] args) {
System.out.println("HAI");
}
}
此代碼編譯fine.But當我跑我得到異常Main method not public
public class MainTest {
public void main(String[] args) {
System.out.println("HAI");
}
}
此代碼編譯fine.But當我跑我得到例外
Exception in thread "main" java.lang.NoSuchMethodError: main
有人可以解釋這種行爲的原因。
如果我沒有指定靜態爲什麼它不作爲實例方法。 當我沒有在課外使用時,爲什麼我需要將主要方法作爲公開使用? 如果因爲靜態主要方法調用可以將主要方法邏輯放在任何靜態方法中並且使用主要方法嗎?
因爲主要方法是入口點。是公開的,以便它可以從任何地方被調用(沒有公開,只能從包內調用)。它必須是靜態的,因此不需要實例化類就可以調用它。這就是Java的設計。 – Supericy 2013-05-08 02:08:54
@Supericy但是我在這裏不能訪問包裹 – PSR 2013-05-08 02:19:29