JAVA-使用电脑终端cmd进行编译、运行

这篇文章主要介绍了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环境变量配置的教程网上有很多,这里就不介绍了。提供以下链接给大家参考:

JDK环境变量配置--win8版


使用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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容