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 ...
随机推荐
- 谨以此篇献给DJANGO学习过程中遇到的问题
谨以此篇献给DJANGO学习过程中遇到的问题 一.Django数据同步过程中遇到的问题: 1.raise ImproperlyConfigured('mysqlclient 1.3.13 or new ...
- echarts (geo/map) 渐变效果
这两天帮人搞了下中国范围内仓库量统计的需求,查了下echarts 里的文档找到类似的demo(链接:https://ecomfe.github.io/echarts-examples/public/e ...
- 下载 mysql 数据库 的步骤 完整版
1. 官网(点这里)上下载 2. 3. 4. 5. 6. 7.
- Shadow Copying导致ASP.NET应用启动很慢的解决办法
What's Shadow Copying? 我们安装一个应用程序并启动后,我们是无法更新应用程序安装目录中程序集文件的.如果强制替换会提示文件正在使用,如下图所示. 那你可能会问,为什么会无法更新呢 ...
- 爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结
本文由爱奇艺技术团队原创分享,原题<爱奇艺Android客户端启动优化与分析>. 1.引言 互联网领域里有个八秒定律,如果网页打开时间超过8秒,便会有超过70%的用户放弃等待,对Andro ...
- [Swift]LeetCode82. 删除排序链表中的重复元素 II | Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...
- [Swift]LeetCode257. 二叉树的所有路径 | Binary Tree Paths
Given a binary tree, return all root-to-leaf paths. Note: A leaf is a node with no children. Example ...
- [Swift]LeetCode410. 分割数组的最大值 | Split Array Largest Sum
Given an array which consists of non-negative integers and an integer m, you can split the array int ...
- [Swift]LeetCode740. 删除与获得点数 | Delete and Earn
Given an array nums of integers, you can perform operations on the array. In each operation, you pic ...
- 20行以内python代码画出各种减压图
一.太阳花 看到一个很有意思的代码,你若安好,便是晴天!太阳花向你开~ 绘画效果如下: 代码如下: from turtle import * color('red', 'yellow') begin_ ...