Java主函数解释、java/javac命令解释、classpath解释

简介: 任何一段程序必须要有一个执行的起始点,有一个入口,这个入口就是主函数,本质上这个主函数就被虚拟机所调用。即:主函数是一个入口、它被虚拟机所调用、有了主函数就能保证一个类的独立运行,一个类里有且只有一个主函数。

任何一段程序必须要有一个执行的起始点,有一个入口,这个入口就是主函数,本质上这个主函数就被虚拟机所调用。
即:主函数是一个入口、它被虚拟机所调用、有了主函数就能保证一个类的独立运行,一个类里有且只有一个主函数。

让编译器做事:
  javac是java对外提供的一个命令,他的底层对应着一整套java编译程序,其实就是用这个命令启动了一个编译程序,编译.java文件,就是对java的原文件进行检查,检查原代码的正确性,叫语法检查。
  该命令的作用是:调用JDK当中的给我们提供的叫做编译程序,javac的意思就是启动编译器。
  若编译失败(即报错)是不可能生成类文件的。

让虚拟机做事:
  java的底层对应的程序是:虚拟机,启动虚拟机帮我运行一个类,即java Demo,是因为运行环境中才包含虚拟机。
  它就去指定的位置去找名称为Demo.class的文件,找到后将其加载到内存(因为任何程序运行需要加载到内存里运行,因为硬盘的速度比较慢,所以硬盘会把数据都转移到内存这个临时存储区后由CUP来进行运算,内存是个大的临时存储空间,运行效率比较高)找到主函数入口进入后,开始执行主函数里面的代码。

  java这个运行程序,类文件(即.class文件)可能分布在电脑硬盘不同目录下。
  运行文件(即类文件)在哪,我就去哪运行,即Demo.class在哪,我就去哪使用命令 java Demo 运行它。

classpath的作用是:可以在任意目录下都能运行java程序。
  但是:有另一种方法:
    即classpath是在规定虚拟机该到什么地方去执行java运行程序。
    若没有配置classpath环境变量时,虚拟机就在该当前目录上查找要运行的类文件,若没有找着就报错。
    若配置的话,虚拟机就在你配置的目录下查找要运行的类文件。

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
2月前
|
存储 Java C语言
Java代码解释Flash原理
Java代码解释Flash原理
36 0
|
2月前
|
Java Linux Windows
java在Linux执行命令Java在Windows执行命令
java在Linux执行命令Java在Windows执行命令
19 0
|
4月前
|
XML Java Maven
nested exception is java.io.FileNotFoundException: class path resource [springmvc.xml] cannot be ope
nested exception is java.io.FileNotFoundException: class path resource [springmvc.xml] cannot be ope
77 0
nested exception is java.io.FileNotFoundException: class path resource [springmvc.xml] cannot be ope
|
9天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
21天前
|
Java Linux 开发工具
手把手教你Linux查找Java的安装目录并设置环境变量以及Linux下执行javac未找到命令的保姆级教学
手把手教你Linux查找Java的安装目录并设置环境变量以及Linux下执行javac未找到命令的保姆级教学
11 0
|
1月前
|
Java Windows
【报错】java -jar 命令启动后中文乱码
在Windows上运行jar包遇到乱码问题,包括DOS窗口日志乱码和程序数据乱码。解决方法:1) 使用`chcp 65001`命令切换控制台到UTF-8编码显示日志;2) 运行jar时指定编码,如`java -Dfile.encoding=utf-8 -jar xxx.jar`,确保数据解码正确。
|
2月前
|
网络协议 Java Linux
Java 开发常用的 Linux 命令知识积累
Java 开发常用的 Linux 命令知识积累
43 0
|
4月前
|
Java Shell 网络安全
java实现连接远程服务器,并可以执行shell命令
java实现连接远程服务器,并可以执行shell命令
58 2
|
Java
4.15.1下面那一个属性与Java解释程序有关?
下面那一个属性与Java解释程序有关?
159 0
|
1天前
|
Java 调度
Java一分钟之线程池:ExecutorService与Future
【5月更文挑战第12天】Java并发编程中,`ExecutorService`和`Future`是关键组件,简化多线程并提供异步执行能力。`ExecutorService`是线程池接口,用于提交任务到线程池,如`ThreadPoolExecutor`和`ScheduledThreadPoolExecutor`。通过`submit()`提交任务并返回`Future`对象,可检查任务状态、获取结果或取消任务。注意处理`ExecutionException`和避免无限等待。实战示例展示了如何异步执行任务并获取结果。理解这些概念对提升并发性能至关重要。
15 5