使用文本编辑器+命令行的方式实现Java中的第一个程序Hello World(下)
本文紧接上一篇博客
本文是上一篇的深入,解决了上一篇更复杂的问题。
1、在test.java文件里写入多个类进行编译,在test.java文件里再写入以下代码,使test.java程序代码里有两个类HelloWorld和Welcome
class Welcome {
public static void main(String args[]) {
System.out.println("Welcome to Java!");
}
}
(1)文件保存成功后,将test.java文件保存在初始位置C:\Users\用户名>,使用下面的命令来编译,
javac test.java
编译成功后,在相同目录下生成两个和程序中类名相同.class文件,一个是HelloWorld.class文件,另一个是Welcome.class文件,如下图所示,
然后在命令行上分别使用下面的命令来执行
java HelloWorld
java Welcome
命令执行后,会在屏幕上分别打印出一个“Hello World”字符串和一个“Welcome to Java!”字符串,如下图所示,
(2) 文件保存成功后,不保存在初始位置,保存在 E:\exam文件夹下面,
并使用下面的命令来编译,
javac E:\exam\ test.java
编译成功如下图,
编译成功后会在相同目录下生成两个和程序中类名相同.class文件,一个是HelloWorld.class文件,另一个是Welcome.class文件,如下图所示,
然后在命令行上分别使用下面的命令来执行
java HelloWorld
java Welcome
命令执行后,本来以为会在屏幕上分别打印出一个“Hello World”字符串和一个“Welcome to Java!”字符串,但是却出现了错误,如下图所示,
开始觉得可能是地址位置问题,当执行java命令时加上了地址,也同样出现了错误,如下图所示,
出现问题后在百度上找到了答案,下面是我看到的一篇博客文章,正好解决了我的问题,在文章中博主对这个问题进行了详细的解释,推荐给大家,
https://blog.csdn.net/jeff_liu_sky_/article/details/48955355
在这篇文章里面,我学会了更改地址目录,我将地址目录更改到了E:\exam>
并使用下面的命令来编译,
javac E:\exam\ test.java
编译成功如下图,
编译成功后会在相同目录下生成两个和程序中类名相同.class文件,一个是HelloWorld.class文件,另一个是Welcome.class文件,如下图所示,
然后在命令行上分别使用下面的命令来执行
java HelloWorld
java Welcome
命令执行后,会在屏幕上分别打印出一个“Hello World”字符串和一个“Welcome to Java!”字符串,如下图所示,
提醒自己注意:在这里我成功学会了用下面的语句,更改地址空间,
2、使用公开类public
在前面的实践中,HelloWorld和Welcome类并没有使用类前缀,给类分类,下面在HelloWorld类前加上public,使HelloWorld类变成一个公共类,再依次执行上面的过程,
(1)文件保存成功后,将test.java文件保存在初始位置C:\Users\用户名>,使用下面的命令来编译,
javac test.java
编译后,出现了错误,如下图所示,
出现错误的原因是,公开类有自己的特性,如果要使用一个公开类,则公开类的类名必须与.java文件的文件名相同(在这里需要注意的是Java语言中时严格区分大小写的),
即,我们需要做的是把test.java文件名改为HelloWorld.java,文件名改名后,再次进行编译,结果出现了错误,如下图所示,
将错误在百度上搜了一下,大佬们的回答是:由于运行javac编译时没有加上扩展名,所以出现错误。解决办法是加上.java扩展名重新编译即可。
【仔细想想这里也是自己粗心了,搞混了,这里编译时就是应该加上.java扩展名的】
问题解决后编译成功,并且在相同目录下生成和程序中类名相同的HelloWorld.class文件,如下图所示,
然后在命令行上分别使用下面的命令来执行
java HelloWorld
命令执行后,在屏幕上分别打印出一个“Hello World”字符串,如下图所示,
(1)文件保存成功后,将test.java文件保存在初始位置E:\exam文件夹下面,就不再赘述了,经过上面的实践,实现方法很简单。
在这里需要注意的是:由公共类的特性可知,一个.java文件只能有一个文件名,所以,一个.java文件中最多只能有一个公共类。根据上面的实践可证明,如果.java文件中的类不是公共类,这样的类可以有多个。