JVM随笔之加载主类

Posted wuqinghua-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM随笔之加载主类相关的知识,希望对你有一定的参考价值。

JVM的工作是运行Java引用程序。和其他的应用程序一样,Java应用程序也需要一个入口点,这个入口点就是我们熟知的main()方法。在Java应用程序中如果一个类包含main方法,那么这个类就可以启动这个应用程序,我们把这个类称为**主类**。最简单的Java程序是只有一个main方法,比如著名的HelloWorld程序.

public class HelloWorld
    pubic static void main(String[] args)
        System.out.println("Hello,World");
    

那么JVM怎么找到这个类呢?对此,Java虚拟机规范中没有进行明确规定。也就是说由虚拟机实现自行决定的。比如Oracle的Java虚拟机实现是通过java命令来启动的,主类的名称使用java命令的参数来指定的。java命令有如下的4中方式:


java [-options] class [args]
java [-options] -jar jarfile [args]
javaw [-options] class [args]
javaw [-options] -jar jarfile [args]


可以向java命令传递三组参数。选项、主类名(或者JAR文件名)和main方法参数。选项由(-)开头。

选项可以分为两大类:标准选项和非标准选项。标准选项比较稳定,不会轻易变动。非标准选项是以-X开头,很有可能为未来的版本中变化。非标准选项中有一部分是高级选项,以-XX开头。下表列出了一些常用的的选项和用途

选项 用途
-version 输入版本信息,然后退出
-?/-help 输出帮助信息,然后退出
-cp/-classpath 指定用户类路径
-Dproperty=value 设置Java系统属性
-Xms 设置初始堆空间大小
-Xmx 设置最大堆空间大小
-Xss 设置线程栈大小

完整的java命令参考 标准

以上是关于JVM随笔之加载主类的主要内容,如果未能解决你的问题,请参考以下文章

类加载机制深度解析

openmpi + java,找不到或加载主类

mac编译java时生成class文件但运行时显示找不到或无法加载主类

类加载机制

类加载机制

从JDK源码级别彻底剖析JVM类加载机制