安装完Java的开发环境Eclipse之后,正是初学者大展身手的时候了,接下来不妨跟着笔者一步一步来,看看第一个Java程序是怎么跑起来的。
一开始双击桌面上的Eclipse图标,稍等片刻便弹出Eclipse的启动窗口,如下图所示。

单击窗口右边的Browse按钮,选中一个目录作为Eclipse的工作空间,然后单击窗口下方Launch按钮进入Eclipse的主界面,如下图所示。

果然是张白纸,除了顶部的一排菜单和一排快捷按钮以外,主界面的其余大部分区域空空如也。现在就让我们白手起家,从无到有鼓捣一个“Hello World”出来。
首先依次选择顶部菜单栏的“File”→“New”→“Project”,弹出如下所示的项目创建窗口界面。

选中该窗口内部的第一行“Java Project”,单击窗口下方的Next按钮,接着跳到如下所示的下一个窗口界面。

在第二页窗口上方的“Project name”输入框中填写“Hello”,再单击窗口下方的Finish按钮完成项目创建操作。
此时回到Eclipse的主界面,发现界面左边的“Project Explorer”区域内部多了个“Hello”文件夹,如下图所示。

单击文件夹图标左边的三角形,会在下方列出名叫src的文件夹,如下图所示,这里便是该项目存放Java代码的大本营。

右击src文件夹,并依次选择右键菜单的“New”→“Package”,弹出如下所示的窗口界面。

在窗口中部的“Name”输入框中填写“com.world.hello”,表示创建指定名称的代码包,单击窗口下方的Finish按钮。回到主界面,可以看到src文件夹下方多了一级目录“com.world.hello”,具体如下图所示。

右击新增的hello目录,并依次选择右键菜单的“New”→“Class”,弹出如下所示的代码创建窗口界面。

同样在窗口中部的“Name”输入框中填写“Hello”,表示创建指定名称的代码文件,其余地方保持不变,单击窗口下方的Finish按钮。此时回到主界面,发现hello目录下多了一个文件Hello.java,层级结构如下图所示。

同时注意到主界面的右边区域打开了该文件,文件内容不多,只有下面的寥寥几行代码:

package com.world.hello;

public class Hello {

}

毫无疑问,这几行代码太少了,啥事都干不了。得再往里面添加一些内容,以便观察详细的程序运行情况,添加之后的完整代码如下所示:

package com.world.hello;;

public class Hello {

	// 代码添加开始,下面的程序入口将会在控制台打印“Hello World”
public static void main(String[] args) {
System.out.println("Hello World");
}
// 代码添加结束
}

上述代码中新增的部分一共有五行,实现的功能也很简单,仅仅在程序启动后往控制台打印“Hello World”罢了。

就在该代码文件内部右击,并依次选择右键菜单的“Run As”→“Java Application”,命令编译器执行这段代码。代码运行结果显示在主界面下方的Console小窗,这个Console窗口就是所谓的控制台,既能输出Java程序的打印文本,又能供开发者向Java程序输入文本。观察Console窗口可见输出了一行文字“Hello World”,如下图所示。

看到上面Console窗口的文字信息,表示Hello.java成功跑起来了,这可是货真价实的第一个Java程序噢。
当然,前面的操作步骤完全依赖于Eclipse开发环境,每当开发者选择菜单项之后,Eclipse就自动执行了相关命令。为了更好地理解Java程序的工作机制,接下来不妨绕过Eclipse,自己动手编译和运行这个“Hello World”。
以Windows系统为例,单击屏幕左下角的开始菜单图标,在弹出菜单列表中的搜索框填写“cmd”,再按回车键打开命令行窗口,如下图所示。

敲入cd命令切换到Hello.java所在的目录,然后输入下面这行命令,并按回车键。
javac Hello.java
假如提示报错“编码GBK的不可映射字符”,则是因为Eclipse环境采用了UTF-8编码造成的。这时改为输入下面这行命令:
javac -encoding UTF-8 Hello.java
回到Hello.java所在的目录,发现该目录下多了一个扩展名叫class的文件——Hello.class,其实它是Java编译产生的字节码文件。class文件并不是本地的可执行程序,只是Java虚拟机能够识别的“机器语言”。要想让它真正跑起来,还得在命令行窗口输入下面这行指令:
java Hello
不料好事多磨,这行指令报错“找不到或无法加载主类”,原因是java命令需要指定完整的程序路径,所以要先返回到src目录,再在src目录下输入以下指令:
java com/world/hello/Hello
或者把斜杆换成点号,也就是输入下述指令:
java com.world.hello.Hello
最后在指令末尾按回车键,一番折腾之后,命令行窗口终于把“Hello World”打印出来了,如下图所示。

这下大功告成,不管是通过Eclipse执行Java程序,还是通过命令行跑Java程序,都成功输出了“Hello World”。一个好的开始是成功的一半,Java的编程世界正在打开大门,里面还有更多精彩的剧情等着你。

Java开发笔记(一)第一个Java程序的更多相关文章

  1. Java开发笔记(二)Java工程的帝国区划

    上一篇文章介绍了如何运行了第一个Java程序“Hello World”.然而这个开发环境看起来那么陌生,一个个名字符号完全不知道它们是干啥的呀,对于初学者来说,好比天书一般,多看几眼感觉都要走火入魔了 ...

  2. Java开发笔记(四)Java帝国的度量衡

    秦始皇统一中国之后,实行“书同文,车同轨”,把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的初学者来说,只有认识 ...

  3. Java开发笔记(三)Java帝国的特种官吏

    上一篇文章介绍了Java工程的帝国区划,末尾给出了一段Java代码例子,这个代码虽然勉强能看懂,但是有些细节令人不甚了了.比如说“// 参观朱雀台”为何能够直接跟在当前行后面?“System.out. ...

  4. Java开发笔记(序)章节目录

    现将本博客的Java学习文章整理成以下笔记目录,方便查阅. 第一章 初识JavaJava开发笔记(一)第一个Java程序Java开发笔记(二)Java工程的帝国区划Java开发笔记(三)Java帝国的 ...

  5. Java开发笔记(七十三)常见的程序异常

    一个程序开发出来之后,无论是用户还是程序员,都希望它稳定地运行,然而程序毕竟是人写的,人无完人哪能不犯点错误呢?就算事先考虑得天衣无缝,揣着一笔巨款跑去岛国买了栋抗震性能良好的海边别墅,谁料人算不如天 ...

  6. 一、Java语言概述与开发环境、第一个java程序

    目录: 1.1 Java特点 1.2 Java程序运行机制 1.3 安装JDl和配置环境变量 1.4 第一个JAVA程序 1.5 第一个JAVA程序的含义 前言 Java语言历时近二十年,已发展成为人 ...

  7. Java开发笔记(九十)对象序列化及其读写

    有些时候,开发者想把程序运行过程中的数据临时保存到文件,可是前面介绍的字符流和字节流,要么用来读写文本字符串,要么用来读写字节数组,并不能直接保存某个对象信息,因为对象里面包括成员属性和成员方法,单就 ...

  8. Java开发笔记(八十八)文件字节I/O流

    前面介绍了如何使用字符流读写文件,并指出字符流工具的处理局限,进而给出随机文件工具加以改进.随机文件工具除了支持访问文件内部的任意位置,更关键的一点是通过字节数组读写文件数据,采取字节方式比起字符方式 ...

  9. Java开发笔记(八十七)随机访问文件的读写

    前面介绍了字符流读写文件的两种方式,包括文件字符流和缓存字符流,但是它们的写操作都存在一个问题:不管是write方法还是append方法,都只能从文件开头写入,而不能追加到文件末尾或者在文件中间某个位 ...

  10. Java开发笔记(八十六)通过缓冲区读写文件

    前面介绍了利用文件写入器和文件读取器来读写文件,因为FileWriter与FileReader读写的数据以字符为单位,所以这种读写文件的方式被称作“字符流I/O”,其中字母I代表输入Input,字母O ...

随机推荐

  1. 【CSS 第五天】背景,边框

    总结一下今天所学习的内容,如下: 背景 属性 例子或作用 background background: #00FF00 url(bgimage.gif) no-repeat fixed top; ba ...

  2. Servlet 上传下载文件

    上传文件 1)在表单中使用表单元素 <input type=“file” />,浏览器在解析表单时,会自动生成一个输入框和一个按钮 2)表单需要上传文件时,需指定表单 enctype 的值 ...

  3. python 模型 ORM简介

    Django之ORM (Object Relational Mapping(ORM)一.ORM介绍1.ORM概念 对象关系映射模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.2.OR ...

  4. 算法与数据结构(三) 二叉树的遍历及其线索化(Swift版)

    前面两篇博客介绍了线性表的顺序存储与链式存储以及对应的操作,并且还聊了栈与队列的相关内容.本篇博客我们就继续聊数据结构的相关东西,并且所涉及的相关Demo依然使用面向对象语言Swift来表示.本篇博客 ...

  5. Vue 单文件原件 — vCheckBox

    简书原文 做东西一向奉行的是致简原则,一定要让使用者简单 这是我在使用 Vue 一段时间后尝试制作的一个小玩意 我希望可以做一堆这样的小玩意,随意组合使用,感觉挺好的 源码在最后 演示DEMO 示例: ...

  6. 企业IT管理员IE11升级指南【13】—— 如何把IEMP迁移到GPP

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  7. [Swift]LeetCode736. Lisp 语法解析 | Parse Lisp Expression

    You are given a string expressionrepresenting a Lisp-like expression to return the integer value of. ...

  8. [Swift]LeetCode747. 至少是其他数字两倍的最大数 | Largest Number At Least Twice of Others

    In a given integer array nums, there is always exactly one largest element. Find whether the largest ...

  9. [Swift]LeetCode779. 第K个语法符号 | K-th Symbol in Grammar

    On the first row, we write a 0. Now in every subsequent row, we look at the previous row and replace ...

  10. js的预解析

    在ES6之前,变量使用var声明,会存在变量的预解析(函数也有预解析).ES6引了let和const,但是现阶段ES6并没有完全普及,而且很多比较老的代码都还是按照ES5的标准甚至是ES3的标准来书写 ...