当前位置: 首页 > 知识库问答 >
问题:

当Java中有多个main方法时会发生什么?

楚俊逸
2023-03-14
public static void main(String[] args) {
      //code written in here seperate package
}
public static void main(String[] args) {
     //code written in here same package as third main
}
public static void main(String[] argv) {
   //code written in here same package as second main
}

这三个方法包含相同的参数,所以不应该重载。它们都有执行不同功能的代码。这怎么可能?java如何知道调用哪个方法?在命令行中通过java jar命令执行此代码时,我没有得到任何错误。

共有1个答案

阎涵容
2023-03-14

Java不知道该调用哪个方法。

这是用户在启动JVM时指定的内容。在这一点上,您选择一个“目标类”;JVM将在该类中搜索main方法。换句话说:当您在命令行上调用“java”时,您可以通过选择一个类名来告诉应该执行哪个main()方法!

可能是您的应用程序被部署为JAR归档;JAR文件中的清单文件也可以指出“目标”类。

 类似资料:
  • 当我用main方法为类创建对象时会发生什么?我能在main方法中使用这些实例变量吗,因为它们在同一个类中?

  • 我是否可以在**不同类但相同包**中有两个或多个公共静态void main(String args[])方法 同一包中的第二类代码 终端输出为

  • 问题内容: 假设我将Sun的JVM嵌入C ++应用程序中。通过JNI,我调用了Java方法(我自己的),该方法又调用了我在共享库中实现的本机方法。 如果此本机方法抛出C ++异常,会发生什么? 编辑:编译器是gcc 3.4.x,jvm是sun的1.6.20。 问题答案: 在JNI文献中,“ 异常 ”一词似乎专门用于指代Java异常。本机代码中发生的意外事件称为 编程错误 。JNI明确不需要JVM检

  • 我做了研究,发现应该这样做我不知道java对象像指针一样工作。我以为只有当两个对象相等时才会传递值。我甚至创建了一个简单的测试应用程序,它可以设置和获取一个对象的数量。再一次,我把这两个对象都等同起来。更改一个对象的元素似乎也会影响另一个对象。我不知道该怎么在谷歌上搜索这个。所以我才把整个故事都告诉你。我只得到与c编程有关的文档。我觉得我的底子都碎了。我现在才知道是如何工作的。我试着做 这不影响N

  • 问题内容: 我正在审查为准备明天早上的期末考试而做的期中考试。我把这个问题弄错了,但是没有指出正确的答案,因此我忽略了询问教授。 考虑以下代码片段: 以下有关该代码的下列哪项正确? 主要方法旨在捕获和处理所有类型的异常。 主要方法是设计用来捕捉和处理鱼。 如果出现这种情况,则main方法应该简单地终止。 如果发生任何异常,main方法应该简单地终止。 我选择了第二个选项。 问题答案: 答案是数字4

  • 本文向大家介绍当我们尝试覆盖Java中超类的最终方法时,会发生什么?,包括了当我们尝试覆盖Java中超类的最终方法时,会发生什么?的使用技巧和注意事项,需要的朋友参考一下 子类不能重写 在超类中声明为final的 任何方法 。如果我们尝试覆盖超类的最终方法,则会在Java中收到错误消息。 实现方法覆盖的规则 方法声明应与要重写的方法相同。 在尝试覆盖之前,该类(子类)应扩展另一个类(超类)。 子类