Даже если ОП говорит только о String[] args
, я хочу привести полный пример public static void main(String[] args)
.
Public
: модификатор доступа , который определяет, кто может получить доступ к этому методу. Открытый означает, что этот метод будет доступен любому классу (если другие классы могут получить доступ к этому классу.).
Static
: это ключевое слово, которое идентифицирует предмет, связанный с классом. Это означает, что данный метод или переменная не связаны с экземпляром, а связаны с классом. Доступ к нему можно получить без создания экземпляра класса.
Void
: используется для определения типа возврата метода. Он определяет, что метод может вернуть. Пустота означает, что метод не будет возвращать никакого значения.
main
: это название метода. Это имя метода ищется JVM как отправная точка для приложения только с определенной подписью.
String[] args
: параметр основного метода.
Если вы посмотрите на исходный код JDK (jdk-src \ j2se \ src \ share \ bin \ java.c):
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
...
{ /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
message = "Main method not public.";
messageDest = JNI_TRUE;
goto leave;
...
Вы можете видеть, что метод запуска в Java должен иметь имя main
и иметь специальную подпись public static void main(String[] args)
Код также говорит нам, что public static void main(String[] args)
не является фиксированным, если вы измените код в (jdk-src \ j2se \ src \ share \ bin \ java.c) на другую подпись, он будет работать, но при изменении этого даст вам другие возможные проблемы из-за Java спецификации
Оффтоп: Прошло 7 лет с тех пор, как ОП задал этот вопрос, я думаю, что ОП уже может ответить на его собственный вопрос.