当前位置:  开发笔记 > 编程语言 > 正文

Java应用程序的入口点:main(),init()或run()?

如何解决《Java应用程序的入口点:main(),init()或run()?》经验,为你挑选了2个好方法。

到目前为止,我一直在使用public void run() {}方法在Java中执行我的代码.何时/为什么可能想要使用main()init()代替run()



1> Jegschemesch..:

这是一个特殊的问题,因为它不应该是一个选择问题.

启动JVM时,指定要运行的类,它是main()程序启动时所在的类.

通过init(),我想你指的是JApplet的方法.在浏览器中启动applet init()时,指定applet 的方法将作为第一个业务顺序执行.

通过run(),我假设你的意思是Runnable的方法.这是启动新线程时调用的方法.

主要:程序启动

init:applet start

run:thread start

如果Eclipse正在运行你的run()方法,即使你没有main(),那么它正在做一些特殊的和非标准的,但不是不可行的.也许您应该发布一个以这种方式运行的示例类.



2> coobird..:

main方法是Java应用程序的入口点.

具体来说,当Java虚拟机通过指定其类(通过使用java应用程序启动器)被告知运行应用程序时,它将查找main具有签名的方法public static void main(String[]).

从Sun的java命令页面:

Java的工具启动Java应用程序.它通过启动Java运行时环境,加载指定的类以及调用该类的main方法来实现此目的.

该方法必须声明为public和static,它不能返回任何值,并且必须接受String数组作为参数.方法声明必须如下所示:

public static void main(String args[])

有关如何执行Java应用程序的其他资源,请参阅以下来源:

    第12章:从Java语言规范执行,第三版.

    第5章:从Java虚拟机规范,第二版链接,加载,初始化.

    仔细看看在"Hello World"的应用从Java教程.


run方法是Thread实现Runnable接口的new 或类的入口点.Java Virutal Machine在java命令启动时不会调用它.

作为一个ThreadRunnable本身不能直接由Java虚拟机上运行,所以它必须通过调用Thread.start()方法.这可以通过在应用程序的方法中实例化Thread并调用其start方法来实现main:

public class MyRunnable implements Runnable
{
    public void run()
    {
        System.out.println("Hello World!");
    }

    public static void main(String[] args)
    {
        new Thread(new MyRunnable()).start();
    }
}

有关更多信息以及如何启动子类Thread或实现类的示例Runnable,请参阅从Java教程定义和启动线程.


init方法是在Applet或JApplet中调用的第一个方法.

当applet由浏览器的Java插件或applet viewer加载时,它将首先调用该Applet.init方法.应该在此处执行使用applet所需的任何初始化.在之后init的方法完成,start方法被调用.

有关何时init调用applet方法的更多信息,请阅读Java教程中Applet生命周期中 applet的生命周期.

另请参阅:如何从Java教程制作Applet.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有