如何使用记事本编写运行Java程序?

经过上节的操作已经配置完了Java的开发环境,但并不清楚所配置的开发环境是否真的可以运行 Java 应用程序。为了解除这个疑虑,也为了使读者对开发 Java 应用程序的步骤有一个初步的了解,本节将展示一个完整 Java 应用程序的开发过程。

编写Java源程序

Java 源程序可以使用任何一个文本编辑器来编写,这里以 Windows 下的记事本为例。

(1) 新建一个空白记事本,然后如实地输入下列内容。 很多初学者可能不明白此程序的全部意义,没关系,请完全按照实例的样式输入,包括各种括号与标点符号。

/*
*第一个java程序
*/
public class HelloJava {
    // 这里是程序入口
    public static void main(String[] args) {
        // 输出字符串
        System.out.println("你好 Java");
    }
}

下面对源代码中的重要组成元素进行简单介绍。

  • 关键字 public 表示访问说明符,表明该类是一个公共类,可以控制其他对象对类成员的访问。
  • 关键字 class 用于声明一个类,其后所跟的字符串是类的名称。
  • 关键字 static 表示该方法是一个静态方法,允许调用 main() 方法,无须创建类的实例。
  • 关键字 void 表示 main() 方法没有返回值。
  • main() 方法是所有程序的入口,最先开始执行。
  • “/”“/”之间的内容和以“//”开始的内容为 Java 程序的注释。

(2) 将写完代码后的文件另存为 HelloJava.java,保存类型选择“所有文件”,接着单击“保存”按钮,保存文件到 D:\myJava 文件夹中,如图所示。



提示:保存的文件名中不能出现空格,类似“Hello Java.java”的文件名在编译时会出现找不到文件的错误。

编译和运行

将 Java 源程序编写并保存到文件之后,还需要进行编译才能运行。编译 Java 源程序使用的是 JDK 中的 javac 命令,例如编译上节的 HelloJava.java,完整命令如下。

javac HelloJava.java

javac HelloJava.java命令的作用是让 Java 编译器获取 Java 应用程序 HelloJava.java 的源代码,把它编译成符合 Java 虚拟机规范的字节码文件。这时会生成一个新文件 HelloJava.class,此文件便是我们所说的字节码文件,它也是 JVM 上的可执行文件,如图所示。

运行 Java 程序需要使用 JDK 中的 java 命令,例如运行上步生成的 .class 文件,完整命令如下:

java HelloJava

具体的执行效果如图所示。

对图片中各个步骤的说明:

  1. 选择“开始”|“运行”命令,打开“运行”对话框后输入 cmd 命令,按 Enter 键进入到 DOS 环境。
  2. 输入 d: 按 Enter 键,切换到 Java 源程序所在的 D 盘。
  3. 输入 cd myJava 命令,进入 Java 源程序所在的目录,即 d:\myJava。
  4. 输入 javac HelloJava.java 命令进行编译,此时如果没有任何其他信息,表示该源程序通过了编译;反之便说明程序中存在错误,必须在记事本中打开 HelloJava.java 文件进行修改,再次保存此文件后回到命令提示符窗口重新编译(可能要反复几次),直到编译通过为止。
  5. 输入 java HelloJava 命令执行程序,如果出现“你好 Java”字符,说明程序执行成功。

编译常见错误解决方法

在使用 javac 编译器编译源代码文件时,可能会出现下面几个常见问题。

(1) Error:cannot read:HelloJava.java javac。
工具程序找不到指定的 java 文件,需要检查文件是否存储在当前目录中,或文件名是否错误。

(2) HelloJava.java:4:class HelloJava is public,should be declared in a file named MyApplication.java。
源文件中类的名称和源文件名称不符,需要确定源文件名称和类名称是否相同。

(3) HelloJava.java:6:cannot find symbol。
源程序文件中某些代码部分输入错了,最常产生的原因可能是没有注意到字母的大小写。

(4) Javac 不是内部或外部命令、可执行程序或批量文件。
path 设置有误或没有在 path 系统变量中加入 JDK 的 bin 目录。

如果没有出现上述所列问题,即成功编译了该 Java 文件。在解释执行 .dass 文件时,可能会出现下面几个常见问题。

(1) Exception in thread “main” java.lang.NoClassDe£FoundError。
Java 工具程序找不到所指定的 .class 类,需要确定指定的类是否存储在当前目录中,名称是否正确。

(2) Exception in thread “main” java.lang.NoSuchMetliodError:main。
没有指定 Java 程序的入口。Java 工具程序指定的类必须有一个程序入口,也就是必须包括 main(String args[]) 这个方法。

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

推荐阅读更多精彩内容