大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
虽然JDK提供了开发Java程序时所用到的一些工具,例如javac,java,javap,jconsole等等
但是JDK并没有提供编写Java程序(代码)的工具,因此想要在编写Java程序之前,还需要了解Java开发工具
我这里把Java开发工具分成两类,分别是文本编辑器和IDE
Visual Studio Code和Sublime Text都是高级的文本编辑器,而且是跨平台的(Windows,macOS,Linux),建议初学Java的朋友可以使用它们来开发Java程序,因为相比IDE而言更加轻量级,对初学者更加友好
IntelliJ IDEA和Eclipse都是IDE,目前公司开发Java项目基本普遍都会使用IntelliJ IDEA,因此建议有经验的开发员使用,因为可以大大提高开发效率。如果你还在上大学而且刚好学的计算机专业,那么大概率你的老师教你使用的Eclipse
在学习任何一门编程语言编写的第一个程序通常都称为HelloWorld,HelloWorld通常是用来了解某种编程语言的程序开发步骤,如果你能够编写并且运行HelloWorld,那么意味着已经迈入编程的大门。
本次我们使用比较原始的开发方式:也就是基于记事本+Windows终端+JDK提供的开发工具(javac和java)来开发人生第一个Java程序,这种方式虽然开发效率比较低,但是能够让初学者了解Java程序的开发和运行流程。
首先在硬盘的任意路径下(例如D:\code)新建文本文档
然后将文件名改成HelloWorld,此时的文件名后缀是.txt,因为文本文档的后缀就是.txt
但是Windows11 默认是隐藏了已知文件扩展名,因此需要勾选文件扩展名
勾选文件扩展名后,HelloWorld显示为HelloWorld.txt
此时需要将HelloWorld.txt改成HelloWorld.java
重命名时系统会提示如果改变文件扩展名,可能导致文件不可以,确实要更改吗?点击是即可
HelloWorld.java源文件创建成功
2.编辑源文件
首先使用记事本打开HelloWorld.java
然后在源文件中输入以下内容
public class HelloWorld{
public static void main(String[]args){
System.out.println("Hello World ");
}
}
在输入的过程中如果觉得字体太小,可以按住Ctrl键,然后向上滚动鼠标放大字体
在编写代码时需要进行适当的缩进
在编写代码时遇到了符号,比如说圆括号(()),方括号([]),大括号({})都需要成对编写,然后再往里面编写内容,而且这些符号都是英文的,因为Java是美国人发明的,不支持中文。
默认字体大小
调整后的字体大小
输入完成后按Ctrl+s保存源文件
3.编译源文件
首先使用Windows+r打开运行窗口
然后输入cmd后回车打开终端
此时终端的路径默认是C:\Users\liuguanglei
liuguanglei是用户名,不同计算机的用户名是不同的
然后依次输入D:和cd code切换到HelloWorld.java所在的目录D:\code
cd 命令就是用于切换目录,不过只能在当前目录切换,使用方式就是cd+空格+目录即可
然后使用javac HelloWorld.java 编译源文件,如果没有语法错误编译成功之后会生成HelloWorld.class文件
4.解释执行字节码文件
在终端上使用java HelloWorld 解释执行HelloWorld.class字节码文件
public class HelloWorld{
public static void main(String[]args){
System.out.println("Hello World ");
}
}
错误分为编译错误和运行时错误两类
因为Java程序是先编译,再解释运行的,因此先出现编译错误,然后再出现解释错误。
即使程序编译通过(语法没有问题),也不一定表示你的程序完全没有问题,因为可能还有运行时错误。
编译时错误就是使用javac编译Java源文件遇到的语法错误
运行时错误就是使用java解释执行字节码文件遇到的错误
如果你修改了源文件的代码,那么一定要重新编译,否则你修改的内容不会生效。
错误代码
public class HelloWorld{
public static void main(string[]args){
System.out.println("Hello World ");
}
}
解决方案:将string改成String,因为Java是严格区分大小写
错误代码
public class HelloWorld{
public static void main(String[]args){
System.out.println("Hello World ");
}
}
解决方案:将中文的分号;替换成英文的分号;即可,因为Java不认识中文符号
大家需要注意的是Java代码中各种符号必须是英文,例如{},(),[],;都是英文的
示例代码
public class HelloWorld{
public static void main(String[]args){
System.out.println("哈哈哈");
}
}
乱码的原因就是编码和解码的不是同一个编码
Java源文件的默认编码是UTF-8,而终端或者称为命令提示符的编码是GBK,这两个编码不一致导致的乱码
乱码解决的第一种方式就是将文件另存为的时候设置编码为ANSI
先点击文件->另存为
然后编码选择ANSI然后保存
然后再确认替换
HelloWorld.java源文件的编码修改成功
最后再重新开启一个终端,然后编译和运行HelloWorld
乱码解决的第二种方式在编译时指定文件编码
javac -encoding utf-8 HelloWorld.java
主类表示有main方法的类,找不到或者无法加载主类的原因就是当前路径下没有指定的字节码文件
解决办法:先编译生成字节码文件,再运行程序
错误代码
public class HelloWorld{
public static void mian(String[]args){
System.out.println("哈哈哈");
}
}
解决方案就是将mian改成main即可
Java程序想要独立运行必须要包含固定格式的main方法
Java跨平台的原理是Java程序不是直接运行在操作系统之上的,而是运行在JRE(Java Runtime Environment)之上,JRE屏蔽了底层操作系统的差异性,从而实现Java程序的跨平台,但是JRE不是跨平台的。
当我们在Oracle官网下载JDK时发现需要根据自己所使用操作系统选择对应的JDK版本
Java8提供了公共的JRE下载
由于JDK包含了JRE,Java11以后不在提供公共的JRE下载
图解Java跨平台的原理