В 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 и позволить ему искать метод с другим именем вместо основного метода.