Java开发笔记(一)第一个Java程序
安装完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程序的更多相关文章
- Java开发笔记(二)Java工程的帝国区划
上一篇文章介绍了如何运行了第一个Java程序“Hello World”.然而这个开发环境看起来那么陌生,一个个名字符号完全不知道它们是干啥的呀,对于初学者来说,好比天书一般,多看几眼感觉都要走火入魔了 ...
- Java开发笔记(四)Java帝国的度量衡
秦始皇统一中国之后,实行“书同文,车同轨”,把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的初学者来说,只有认识 ...
- Java开发笔记(三)Java帝国的特种官吏
上一篇文章介绍了Java工程的帝国区划,末尾给出了一段Java代码例子,这个代码虽然勉强能看懂,但是有些细节令人不甚了了.比如说“// 参观朱雀台”为何能够直接跟在当前行后面?“System.out. ...
- Java开发笔记(序)章节目录
现将本博客的Java学习文章整理成以下笔记目录,方便查阅. 第一章 初识JavaJava开发笔记(一)第一个Java程序Java开发笔记(二)Java工程的帝国区划Java开发笔记(三)Java帝国的 ...
- Java开发笔记(七十三)常见的程序异常
一个程序开发出来之后,无论是用户还是程序员,都希望它稳定地运行,然而程序毕竟是人写的,人无完人哪能不犯点错误呢?就算事先考虑得天衣无缝,揣着一笔巨款跑去岛国买了栋抗震性能良好的海边别墅,谁料人算不如天 ...
- 一、Java语言概述与开发环境、第一个java程序
目录: 1.1 Java特点 1.2 Java程序运行机制 1.3 安装JDl和配置环境变量 1.4 第一个JAVA程序 1.5 第一个JAVA程序的含义 前言 Java语言历时近二十年,已发展成为人 ...
- Java开发笔记(九十)对象序列化及其读写
有些时候,开发者想把程序运行过程中的数据临时保存到文件,可是前面介绍的字符流和字节流,要么用来读写文本字符串,要么用来读写字节数组,并不能直接保存某个对象信息,因为对象里面包括成员属性和成员方法,单就 ...
- Java开发笔记(八十八)文件字节I/O流
前面介绍了如何使用字符流读写文件,并指出字符流工具的处理局限,进而给出随机文件工具加以改进.随机文件工具除了支持访问文件内部的任意位置,更关键的一点是通过字节数组读写文件数据,采取字节方式比起字符方式 ...
- Java开发笔记(八十七)随机访问文件的读写
前面介绍了字符流读写文件的两种方式,包括文件字符流和缓存字符流,但是它们的写操作都存在一个问题:不管是write方法还是append方法,都只能从文件开头写入,而不能追加到文件末尾或者在文件中间某个位 ...
- Java开发笔记(八十六)通过缓冲区读写文件
前面介绍了利用文件写入器和文件读取器来读写文件,因为FileWriter与FileReader读写的数据以字符为单位,所以这种读写文件的方式被称作“字符流I/O”,其中字母I代表输入Input,字母O ...
随机推荐
- Scala语言笔记 - 第一篇
目录 Scala语言笔记 - 第一篇 1 基本类型和循环的使用 2 String相关 3 模式匹配相关 4 class相关 5 函数调用相关 Scala语言笔记 - 第一篇 最近研究了下scala ...
- js面向对象和php面向对象的区别
---恢复内容开始--- js的面向对象 1.类 具体相同的特征的一些对象的集合. 2.对象 具体到某一个失误了都可以叫做对象. 3.类 通过function 定义类 所以在js里类的本质是函数, ...
- [tkinter]Radiobutton单选按钮的使用
首先因为单选按钮有一个特性(一个被选中后,自动清除其它按钮的选中状态) 所以使用方式也有点不同 错误示例 from tkinter import * root = Tk() r1 = Radiobut ...
- 实战深度学习(上)OpenCV库
在如今人工智能的浪潮下,无数模拟机器学习和深度学习的开发者工具倍出,其中在计算机图形学和计算机视觉里面最流行的一个库就是OpenCV库了.计算机图形学和计算机视觉学在我们的自动驾驶和仿生机器人当中有着 ...
- Echarts 几个常用图
最近公司业务上的 需求,要求做一些图表,我们技术框架上选择方便使用的Echarts. 下面是效果图: 下面是具体代码: <!DOCTYPE html> <html> <h ...
- 分门别类总结Java中的各种锁,让你彻底记住
概念 公平锁/非公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁. 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁.有可能,会造成优先级反转或者饥 ...
- [Swift]LeetCode94. 二叉树的中序遍历 | Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values. Example: Input: [1,null,2,3] ...
- c# 关于页面生命周期
每次遇到这个问题,总是含含糊糊的说不清楚,今天就在这里统一整理一下,以便以后的查看. 一般来说,页要经历下表概述的各个阶段.除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于 ...
- HBase之CF持久化系列(续2)
正如上篇博文所说,在本节我将为大家带来StoreFlusher.finalizeWriter..如果大家没有看过我的上篇博文<HBase之CF持久化系列(续1)>,那我希望大家还是回去看一 ...
- Java连接数据库之MySQL
工具: eclipse MySQL Navicat for MySQL MySQL 连接驱动:mysql-connector-java-5.0.4-bin.jar SQL 代码 CREATE TABL ...