【问题标题】:is it possible to run a program by using a class without main( )是否可以使用没有 main() 的类来运行程序
【发布时间】:2020-06-29 07:15:55
【问题描述】:

我在某处读过您在 JVM 上执行的 Java 程序将始终从 main 方法开始执行。 但是当我在 bluej 上编译下面的程序时,它成功编译,没有任何错误。

import java.util.*;
class Calculate
{
      int m,n,s,d;//Data members
     void inputdata()
     {
         Scanner sc = new Scanner(System.in);
         System.out.println("enter two numbers");
         m  = sc.nextInt();
         n = sc.nextInt();
     }
     void calculation()
     {
         s = m+n;
         d = m-d;
     }
     void outputdata()
     {
         System.out.println("sum of two  numbers:"+s);
         System.out.println("difference of two numbers:"+d);
     }
    
}

请告诉我在下面的程序中没有 main 方法那么它是如何在 BLUEJ 上成功编译的?我们需要创建一个 main 函数,当您的应用程序首次运行时,控制权将在该函数中转移。否则 JVM 将找不到传递控制权的函数,您的应用程序将无法运行。

【问题讨论】:

标签: java


【解决方案1】:

你可以编译一个没有“main”方法的类,因为那是 100% 有效的 Java。

您不能将该类用作应用程序的入口点。但另一个应用程序可以建立在您的类之上。

编译和执行是两件不同的事情,理解这一点很重要。

【讨论】:

  • 但是先生,在第二张图片中,我们显式创建对象并在没有 main() 的情况下调用非静态方法,所以在 bluej IDE 中我们可以显式调用方法吗?
  • 我已经有一段时间没有使用过 BlueJ(11 年了?)但是 IIRC,是的,你可以在 BlueJ 中做到这一点。 BlueJ 本身是一个运行在 JVM 中的 Java 程序,因此它可以只实例化您的类并在其上调用函数。
【解决方案2】:

main 方法是程序的入口点,这意味着无论何时运行程序,它的执行都是从 main 方法开始的。所以很快就不会发生这种情况。Introduction to java.

【讨论】:

  • 嗯,除非您编写 Eclipse 插件、Minecraft mod、在 servlet 容器中运行的 Java EE 应用程序或其他各种情况,否则不会发生这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-23
  • 2017-03-27
  • 1970-01-01
相关资源
最近更新 更多