В java можно ли переименовать или рефакторировать" public static void main"?
Я не хочу менять public static void ... String[] args часть подписи, но можно ли "переименовать"эту функцию (например. просто для удовольствия)?
таким образом, точкой входа для выполнения будет функция с другим именем.
переименовать его, например, boot (что лучше отражает, если не является историческим, фактическое использование для него в моем конкретном случае).
по теме
Я заинтересован в том, чтобы сделать что-то другое, но эти вопросы по-прежнему интересны:
public static void main (String arg [ ]) в java это исправлено?
7 ответов
нет. The Спецификация Языка Java говорит:
виртуальная машина Java начинает выполнение, вызывая метод
mainнекоторого заданного класса, передавая ему один аргумент, который является массивом строк.
на спецификация JVM говорит то же самое:
виртуальная машина Java затем связывает начальный класс, инициализирует его и вызывает метод открытого класса
void main(String[]).
Простой Ответ Нет, Причина,спецификация такое JVM будет искать только main и не любое пользовательское имя в качестве начальной точки. Он должен называться main с точной подписью public static void main(String[] args)
логично и имеет смысл как JVM знаю, что вместо main метод, он должен искать boot или что-то еще, если java команда имела возможность передать метод start.
но это слишком много для Нет серьезное основание.
во-вторых, поскольку он стандартизирован, он также помогает сообществу разработчиков, кто смотрит на код, знает, как запустить данный Java отдельная программа, или, скажем, если у вас есть проект, то всегда будет искать основной метод, и оттуда двигаться дальше.
при запуске JVM смотрит из метода public static void main с массивом строк в качестве аргумента. Поэтому единственное, что вы можете сделать, это переименовать аргумент args. Если вы хотите такой метод, как boot, никто не мешает вам делать что-то подобное (лично я не рекомендую этот "шаблон")
static void boot(String[] arguments){
//your logic
}
public static void main(String[] args) {
boot(args);
}
нет. Вы не можете сделать это в соответствии со спецификацией языка Java. Но если вы хотите, поскольку Java-проект с открытым исходным кодом, загрузите полный исходный код языка Java и измените его соответственно ( я имею в виду изменение исходного кода самого JVM). Это единственный способ сделать это.
Так что теперь вы можете понять, почему я сказал, что это невозможно.
ваше приложение запускается из public static void main(String[] args). Это как момент, когда JVM смотрит на начало разбирательства. Если вы измените его, JVM будет чувствовать себя свободно, чтобы не запустить приложение.
Если вы хотите иметь boot() в качестве отправной точки вашего приложения-вызовите его в main().
простой ответ:NO . Когда вы начинаете выполнять программу, она ищет public static void main(String[] args) который принимает аргумент массива строк.От этой точки входа основной поток начать.
Да, мы можем изменить имя основного метода, если мы можем изменить конфигурации JVM и позволить ему искать метод с другим именем вместо основного метода.