这篇文章主要介绍了Java程序从创建到执行的基本环节以及如何使用电脑终端来对一个Java程序进行编译和运行
Java 开发环境
这里先解释一下创建和执行Java程序过程中的5个必要的环节:edit,compile,load,verify 和 execute。
Phase 1: Edit
首先,我们需要在编辑器里,编辑程序,完成后,保存为一个以.java为结尾的文件。
我创建了一个HelloWorld.java文件Phase 2: Compile
接着,我们需要将.java文件编译成字节码文件,而这些字节码文件会被保存在一个以.class为结尾的文件里面。
.class文件 字节码这里解释一下,C/C++或者汇编语言都是将源代码直接编译成目标机器码,这个目标机器代码是CPU直接执行的指令集合。而Java的程序首先由源代码通过Javac(编译器)编译成字节码(bytecode),然后再通过JVM来进行解析运行,所以说Java是一种半编译半解析的语言。
Phase 3: Load
接下来,类加载器(Class Loader)会将相关的.class文件加载到内存里。
Phase 4: Verify
字节码校验器(Bytecode Verifier)会检查确认所有的字节码都是合法的。
Phase 5: Execute
运行的时候,JVM会读取字节码文件并且将他们解析为电脑能够读懂的语言。在运行程序的过程中,会将相关的数据存在内存里。
使用终端编译Java文件
jdk环境变量配置
首先我们打开电脑终端(win+R),输入cmd,点击确定,就会出现命令提示符。
命令提示符输入java。
再输入javac。
如果输入java/javac提示不是可以执行的命令,或者没有反应,就是电脑jdk环境变量的配置的问题。
对于具体的jdk环境变量配置的教程网上有很多,这里就不介绍了。提供以下链接给大家参考:
使用Javac编译器
首先我们在桌面新建一个文件夹,该文件夹用来存放Java源文件,这里我就存放我上面写的HelloWorld.java文件。
打开cmd,然后我们能看到一个目录,这个目录表示当前目录,也就是说我们的终端现在处于这个目录下:
我们需要将目录转到源代码所在的目录下,这样方便我们编译运行。复制源代码所在的目录的路径,在cmd中输入“cd +空格+路径”,如下:
输入Enter,我们就发现这个目录为我们当前的目录。
然后我们使用Javac编译器来对源代码进行编译。这里,在编译前,我们要注意这个java文件里面不要带有“package name”,如果你的代码有package name,在不影响代码运行的前提下将这个package name去掉,再进行编译。注意:同学们在提交作业的时候不能够带package name。
如果必须要使用package name来进行编译,可以参考下面这个网站的做法。
JAVA和JAVAC 命令行;java 带有包名编译并运行,附带外部依赖jar包运行
现在我在cmd中输入javac HelloWorld.java。编译成功会看到有个.class文件生成。
执行程序
这时我们需要执行我们的程序啦!输入java HelloWorld(这里注意不是java HelloWorld.class,而是输入主函数所在的类的名称)
目前一切都堪称完美。现在,我们把代码打开
红框内部是我们的主函数大家可能已经发现了,在这个主函数里面,通常都会有一个String类型的数组参数传进来,名为args。
在一般的方法里,我们在调用方法的时候可以通过这个参数的位置来传入指定的参数类型和参数内容,那这个主函数的参数我们该如何使用呢。
我们把代码修改成如下:
这个说明即将要打印的是这个主函数传进来的String数组参数中的第一个字符串。
我们同上面一样继续javac编译代码。然后输入java HelloWorld。
出现错误这个时候运行出现错误,说明没有参数传进主函数里,所以在打印的时候就会错误。我们修改为 java HelloWorld “Hello world!”,如下
这个说明了主函数的参数输入是通过在终端后面追加字符串来执行的。你可以追加无数个字符串,因为参数是一个数组,你也可以通过获取数组的长度来获取输入字符串的个数。字符串和字符串之间需要用空格来隔开。
所以如果以后在程序中看到args[0]说明这个是cmd中输入的第一个字符串。
使用eclipse给主函数传入参数
当我们使用eclipse来执行上面的代码,直接点击运行可能无法直接输入参数
我们可以点击Run绿色按钮右边的三角形,找到Run configuration,点开
在Arguments菜单,Program argument输入你要输入的参数,点击Run
这样程序就能正常执行了。
同学们再提交作业前,先使用cmd对代码进行编译运行后,再将.java文件上传。
本文总结
1. javac命令用于将java文件编译成class文件
2. java命令用于执行程序
3. 注意把package name去掉
4. 主函数参数传入通过在执行程序命令后面追加字符串
此文章有任何纰漏之处,欢迎指正。邮箱intofor@163.com。
网友评论