方法一:按 Win+R 快捷键,输入cmd,然后进入源代码所在的文件夹(我的源代码目录为
D:\Java
,进入文件夹输入“cd 文件夹名
”,退出当前文件夹输入“cd\
”)。
方法二:在源代码目录输入cmd,按Enter键。
输入“javac 源文件名.java
”命令,按Enter键,开启Java编译器并进行编译,编译结束后,会自动生成一个源文件名.class
的字节码文件。
如果出现“错误: 编码 GBK 的不可映射字符 (0x8D)
”,需要在“javac”后面加上-encoding UTF-8
。
输入“java 源文件名
”命令,按Enter键,启动Java虚拟机运行程序。Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟机针对加载到内存中的Java类进行解释执行,便可看到运行结果。
运行原理:任何程序的运行都离不开计算机的内存。当我们切换到盘符下面执行HelloWorld的时候,会立即在计算机的内存里面创建一个JVM,再把HelloWorld.class这个文件调到JVM中。
- 过程:Java源文件—>编译器—>字节码文件—>Jvm—>机器码
- Java程序是由虚拟机负责解释执行的,而并非操作系统。针对不同的操作系统可以编写相同的程序,只需要安装不同版本的虚拟机即可。
- 不同的操作系统需要使用到不同版本的虚拟机。
- Java程序通过Java虚拟机可以达到跨平台特性,但Java虚拟机并不是跨平台的,也就是说,不同操作系统上的Java虚拟机是不同的。
- 当一个程序从开始运行一个程序,这时虚拟机就开始实例化了。多个程序启动就会存在多个虚拟机实例,程序退出或者关闭,则虚拟机实例消亡。多个虚拟机实例之间数据不能共享。
必须要用引号(因为中间有空格,空格后会识别是参数)引入安装的JDK目录下javac.exe程序。
"C:\Program Files\Java\jdk1.8.0_40\bin\javac.exe" -encoding UTF-8 编译文件.java
1
这时候会发现类文件具有错误的版本
,是因为之前用另一个JDK编译过了,此时变了版本,之前生成的.class还是之前版本的,所以有冲突,需要将之前的.class文件全部删除。
删除所有.class文件命令:del *.class
,重新编译。
编辑于2022年3月24日