编写运行Java程序:Hello World 1.选择最简单的编辑器:记事本。将Java代码编写入扩展名为.java的文件(源文件)中。 Hello World:代表学习计算机语言的第一个入门小程序。现在泛指接触任何新事物的第一步。 Class:是java中的关键字,用于定义类,java语言的程序代码都需要定义在类中。 关键字:被java语言赋予了特殊含义的单词。 Demo:为了方便使用这个类,给类自定义的类名。 {}:定义该类中代码的范围。 注意:写代码,阅读性第一,功能性第二,一定要注意写代码的格式!源文件名和类名可以不一致,但当class前有修饰符public时,则必须一致. 2. 通过javac命令对该java文件进行编译。 ①有了java源文件,将其编译成JVM可以识别的文件。 ②在该源文件目录下,通过javac编译工具对Demo.java文件进行编译。 ③如果程序没有错误,没有任何提示,就会在当前目录下出现一个Demo.class文件,该文件称为字节码文件,也就是可以执行的java的程序。 3. 通过java命令对生成的class文件进行运行。 ①有了可执行的java程序(Demo.class字节码文件),通过运行工具java.exe对字节码文件进行执行。 出现提示:缺少一个名称为main的方法。 使用java命令运行class文件,没有必要加上.class文件后缀。 ②因为一个程序的执行需要一个起始点或者入口,所以在Demo类中加入如下代码。 ③对修改后的Demo.java源文件需要重新编译,生成新的class文件后,再执行。 发现编译成功,但也没有任何效果,因为程序并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。 ④如果想要和JVM来个互动,只要在main方法中加入一句System.out.println('hellojava');。因为对程序进行了改动,所以需要再重新编译,然后运行即可。 1. main方法的作用在于保证一个类可以独立运行,因为它是程序的入口。 2. System.out.print();语句用于告诉系统输出打印数据,可以将括号中的内容打印在控制台上。通过该语句可以直接在控制台看到jvm运行java程序后的结果。 3.System.out.println();语句与System.out.print();语句的区别是,前者打印后并且换行。 4.javac命令的作用是对java程序进行语法性检查,一旦出错,就会打印出错误信息。 由于System.out.println('hello java')语句后面缺少分号,所以报错。根据报错的行数,找到错误的地方,进行修改。然后重编编译,运行。 注意:Java会出现连锁错误反应,也就是一个错误,会导致后面程序的多个错误。这时候只需要修改第一个错误,后面的错误都会解决掉。 5.java命令可以启动JVM,然后找到相应的class文件,再寻找程序入口,也就是main方法,然后调用该方法执行java程序。 常见错误原因: 1.文件名写错。 2.类文件不在当前路径下或者不在classpath(后面会将讲到)指定路径下。 3.后缀名问题。 “后缀名问题”查找及解决方案如下: 1. 点击“工具”-->“文件夹选项”。 2. 点击“查看”选项卡,并且勾选掉“隐藏已知文件类型的扩展名”。 3. 然后就可以看到文件真正的后缀名为txt,所以找不到Demo.java文件。只需将修改后缀名为java,再重新编译、运行即可。 配置classpath环境变量 由于可能频繁执行多个class文件,并且多个class文件可能存储在不同的目录下,那么每次都在命令提示符窗口中切换目录会相当的麻烦。 classpath环境变量的作用类似于path环境变量,但是它的作用在于告诉JVM去哪里找到class文件。 JVM查找类文件的顺序: 1. 如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。 2. 如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件. 示例: 1.在C盘根目录下新创建一个文件夹,命名为myclass,将D:\code\day01目录下的Demo.class文件剪切到此文件夹下。 2.将D:\code\day01文件夹中的源文件Demo.java修改为在控制台中打印“hello D盘”,重新编译,生成Demo.class。 3.如果想要执行C盘根目录下myclass文件夹中的Demo.class,又不想切换目录,由于JVM会先在classpath环境变量值的目录中查找要运行的类文件,可以通过设置环境变量classpath为“c:\myclass”实现。 4.classpath环境变量值的结尾处如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,也不会在当前目录下查找。即使当前目录下有,也不会运行。 示例: 1.删除C:\myclass目录下的Demo.class。 2.在D:\code\Day01目录下运行Demo.class文件,报错。 这是因为classpath环境变量已经被赋值,所以即使在D:\code\Day01目录下存在Demo.class文件,JVM也根本不会去查找。 3.classpath环境变量值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下再查找一次。 示例:为环境变量classpath赋值后加上一分号,然后在D:\code\day01目录下运行Demo.class文件,由下图可见,运行成功。 建议配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”(代表当前目录)表示,这样可读性更好一些。 |
|
来自: 庆亮trj21bcn0z > 《编程》