安装完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. 封装一个 员工类 使用preparedStatement 查询数据 (1)

    创建员工类  自动生成get set 方法 package cn.hph; public class emp { //定义表中的属性 private int id; private String en ...

  2. vue项目实践-前后端分离关于权限的思路

    前后端分离后权限的思路 最近看到许多关于权限的思路,但好像都是使用动态加载路由的方式,现在也分享下我在项目中使用的解决方案. 前后端分离关于权限的处理每个人都不一样,根据项目选择制定合适的方案就好 我 ...

  3. 【RL-TCPnet网络教程】第21章 RL-TCPnet之高效的事件触发框架

    第21章       RL-TCPnet之高效的事件触发框架 本章节为大家讲解高效的事件触发框架实现方法,BSD Socket编程和后面章节要讲解到的FTP.TFTP和HTTP等都非常适合使用这种方式 ...

  4. [Swift]LeetCode296. 最佳开会地点 $ Best Meeting Point

    A group of two or more people wants to meet and minimize the total travel distance. You are given a ...

  5. [Swift]LeetCode658. 找到 K 个最接近的元素 | Find K Closest Elements

    Given a sorted array, two integers k and x, find the kclosest elements to x in the array. The result ...

  6. [Swift]LeetCode685. 冗余连接 II | Redundant Connection II

    In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...

  7. SpringCloud(1)---基于RestTemplate微服务项目案例

    基于RestTemplate微服务项目 在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上 ...

  8. Jquery.ajax dataType参数

    dataType 类型:String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML.在 1.4 ...

  9. solr之环境配置一

    安装Java JDK solr运行需要java serverlet 容器,默认使用jetty,或者tomcat,jboss等等. 下载一个jdk,我的jdk是jdk1.7.0_65. 安装JDK的步骤 ...

  10. Ocelot + Consul实践

    关于Consul(https://www.consul.io)是一个分布式,高可用,支持多数据中心的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla ...