3.5 第一个Java程序“Hello World”
3.5.1 工具介绍
编写Java程序可以使用很多种工具
l notepad(微软操作系统自带)
l Notepad++
l Eclipse
l MyEclipse
我们在初始学习阶段先通过Notepad++来学习,这样我们可以更直观的看到程序运行的流程。
3.5.2 HelloWorld
源代码
class HelloWorld{ public static void main(String[] args){ System.out.print("Hello World;"); System.out.println("Hello World;"); } }
将源代码存放在K:\WorkSpace\JavaJC\Chapter 1
此时我们打开命令行,定义到JDK的目录下,
此时我们编译程序会发现
原因在于javac.exe它只会编译bin目录下的文件,而HelloWorld.java不在当前bin目录下,我们将需要编译的文件放在当前bin目录下,重新编译发现提示编码错误错误,这是我们可以解决错误提示:编码 GBK 的不可映射字符,使用命令:javac -encoding utf-8 helloword.java,编译成功--这句的意思是使用编码字符集utf-8来编码HelloWord.java,然后编译执行
运行我们编译成功的class
在这里我们要注意当我们更改源文件时,我们在运行可执行文件.class时,如果没有编译,那么更改是无效的,简单举例:当我们将HelloWorld.java中再加入一句输入语句System.out.print(“未经编译的举例”);此时我们不编译,直接运行可执行文件,
输出结果是上一次我们编译后的呈现,我们重新编译,重新执行,这次变化才会显示出来,这是因为我们我们写的源码和JVM执行的中间码中间要经过一个编译。
3.5.3程序解析
class Demo{ /*首先定义一个类 class 类名 这个类名将是未来我们编译后的字节码文件名 在类定义后加上一对大括号{}*/ /*在大括号中间添加一个主(main)方法/函数 public static void main(String [] args){ } main是给类定义的方法,当类作为包中的主类时,必须要有main方法,main方法是程序的入口,当程序执行时,优先调用它。然后在main方法中再调用别的类和方法,就完成了程序。*/ public static void main(String[] args){ /*在主方法的大括号中间添加两行输出语句 System.out.print(“hello world”); System.out.println(“hello world”);Ln的区别在于是一个回车 有Ln代表有一个回车*/ System.out.print("Hello World"); System.out.println("Hello World"); } }
当我们不输入main方法时,我们的编译仍可进行,但执行可执行文件时汇报错误
main是程序的入口;就好像我们回家要开门一样,FQ是会被打的。
3.5.4运行与工作原理
3.5.5常见错误
l 文件扩展名隐藏导致编译失败
l class写错 Class claas…
l 类名格式有问题 暂时全部使用英文
l 类名后面的大括号匹配不正确
l main方法格式错误 public static void main(String [] args){ }
l main方法大括号缺失
l 打印语句拼写错误 System.out.println(“”);
l 引号使用错误,使用成中文全角引号
如果编译后无法生成可执行文件一般可以按以下步骤进行排查,找到问题所在:
1.先检查jdk环境是否配置成功
做法:DOS下输入:java -version,看是否有jdk版本的信息;java,看是否有相关命令;javac,看是否有这个命令;验证这3个命令,会对jdk环境配置有个直观的认识,如果没有正常显示相关信息,就要去配置jdk环境,具体步骤可参考百度经验。
2.检查路径是否正确
做法:DOS下输入:dir,查看当前路径下是否真的有这个HelloWorld.java文件
3.通过命令 javac -d 你想生成class文件的目录 HelloWorld.java 来查看是否有class文件
做法:DOS下输入:javac -d C:\ HelloWorld.java ,运行后,看是否在C盘下有HelloWorld.class文件