Java核心技术卷I基础知识2.2 使用命令行工具

2.2 使用命令行工具

如果在此之前有过使用Microsoft Visual Studio等开发环境编程的经验,你可能会习惯于有一个内置文本编辑器、用于编译和启动程序的菜单以及调试工具的系统。JDK完全没有这些功能。所有工作都要在终端窗口中键入命令来完成。这听起来很麻烦,不过确实是一个基本技能。第一次安装Java时,你可能希望在安装开发环境之前先检查Java的安装是否正确。另外,通过自己执行基本步骤,你可以更好地理解开发环境的后台工作。

不过,掌握了编译和运行Java程序的基本步骤之后,你可能就会希望使用专业的开发环境。下一节会介绍如何使用开发环境。

首先介绍较难的方法:从命令行编译并运行Java程序。

1)打开一个终端窗口。

2)进入corejava/v1ch02/Welcome目录(CoreJava是安装本书示例源代码的目录,请参看2.1.3节)。

3)键入下面的命令:

 

然后,将会在终端窗口中看到图2-3所示的输出。

 

图2-3 编译并运行Welcome.java

祝贺你!你已经编译并运行了第一个Java程序。

那么,刚才都进行了哪些操作呢?javac程序是一个Java编译器。它将文件Welcome.java编译成Welcome.class。java程序启动Java虚拟机。虚拟机执行编译器放在class文件中的字节码。

Welcome程序非常简单。它只是向控制台输出了一条消息。你可能想查看程序清单2-1的程序代码。(在下一章中,将解释它是如何工作的。)

程序清单2-1 Welcome/Welcome.java

 

在使用可视化开发环境的年代,许多程序员对于在终端窗口中运行程序已经很生疏了。常常会出现很多错误,最终导致令人沮丧的结果。

一定要注意以下几点:

如果手工输入源程序,一定要注意大小写。尤其是类名为Welcome,而不是welcome或WELCOME。

编译器需要一个文件名(Welcome.java),而运行程序时,只需要指定类名(Welcome),不要带扩展名.java或.class。

如果看到诸如Bad command or f?ile name或javac:command not found这类消息,就要返回去反复检查安装是否有问题,特别是执行路径的设置。

如果javac报告了一个错误,指出无法找到Welcome.java,就应该检查目录中是否存在这个文件。

在Linux环境下,检查Welcome.java是否以正确的大写字母开头。

在Windows环境下,使用命令dir,而不要使用图形浏览器工具。有些文本编辑器(特别是Notepad)在每个文件名后面要添加扩展名.txt。如果使用Notepad编辑Welcome.java就会存为Welcome.java.txt。对于默认的Windows设置,浏览器与Notepad都隐含.txt扩展名,这是因为这个扩展名属于“已知的文件类型”。此时,需要重新命名这个文件,使用命令ren,或是另存一次,为文件名加一对双引号,如:“Welcome.java”。

如果运行程序之后,收到关于java.lang.NoClassDefFoundError的错误消息,就应该仔细地检查出问题的类的名字。

如果收到关于welcome(w为小写)的错误消息,就应该重新执行命令:java Welcome(W为大写)。记住,Java区分大小写。

如果收到有关Welcome/java的错误信息,这说明你错误地键入了java Welcome.java,应该重新执行命令java Welcome。

如果键入java Welcome,而虚拟机没有找到Welcome类,就应该检查一下是否有人设置了系统的CLASSPATH环境变量(将这个变量设置为全局并不是一个提倡的做法,然而,Windows中有些比较差的软件安装程序就是这样做的)。可以像设置PATH环境变量一样设置CLASSPATH,不过这里将删除这个设置。

      提示:在http://docs.oracle.com/javase/tutorial/getStarted/cupojava/上有一个很好的教程。其中提到了初学者经常容易犯的一些错误。

时间: 2024-09-24 11:14:12

Java核心技术卷I基础知识2.2 使用命令行工具的相关文章

Java核心技术卷I基础知识2.1 安装Java开发工具包

第2章 Java程序设计环境 ▲ 安装Java开发工具包 ▲ 运行图形化应用程序 ▲ 使用命令行工具        ▲ 构建并运行applet ▲ 使用集成开发环境       本章主要介绍如何安装Java开发工具包(JDK)以及如何编译和运行不同类型的程序:控制台程序.图形化应用程序以及applet.运行JDK工具的方法是在终端窗口中键入命令.然而,很多程序员更喜欢使用集成开发环境.为此,将在稍后介绍如何使用免费的开发环境编译和运行Java程序.尽管学起来很容易,但集成开发环境需要吞噬大量资源

Java核心技术卷I基础知识3.7.3 文件输入与输出

3.7.3 文件输入与输出 要想对文件进行读取,就需要一个用File对象构造一个Scanner对象,如下所示:   如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠: "c:\\mydirectory\\myf?ile.txt".       注释:在这里指定了UTF-8字符编码,这对于互联网上的文件很常见(不过并不是普遍适用).读取一个文本文件时,要知道它的字符编码--更多信息参见卷Ⅱ第2章.如果省略字符编码,则会使用运行这个Java程序的机器的"默

Java核心技术卷I基础知识2.1.3 安装库源文件和文档

2.1.3 安装库源文件和文档 库源文件在JDK中以一个压缩文件src.zip的形式发布,必须将其解压缩后才能够访问源代码.建议按照下面所述的步骤进行操作.很简单: 1)确保JDK已经安装,并且jdk/bin目录在执行路径中. 2)在主目录中建立一个目录javasrc.如果愿意,可以在一个终端窗口完成这个步骤.   3)在jdk目录下找到文件src.zip. 4)将src.zip文件解压缩到javasrc目录.在一个终端窗口中,可以执行以下命令:         提示:src.zip文件中包含了

Java核心技术卷I基础知识2.4 运行图形化应用程序

2.4 运行图形化应用程序 Welcome程序并不会引起人们的兴奋.接下来,给出一个图形化应用程序.这个程序是一个简单的图像文件查看器(viewer),它可以加载并显示一个图像.首先,由命令行编译并运行这个程序. 1)打开一个终端窗口. 2)进入corejava/v1ch02/ImageViewer. 3)输入:   将弹出一个标题栏为ImageViewer的新程序窗口(如图2-8所示). 现在,选择File→Open,然后找到一个图像文件并打开它(我们在同一个目录下提供了两个示例文件).要关闭

Java核心技术卷I基础知识3.10.4 命令行参数

3.10.4 命令行参数 前面已经看到多个使用Java数组的示例.每一个Java应用程序都有一个带String arg[]参数的main方法.这个参数表明main方法将接收一个字符串数组,也就是命令行参数. 例如,看一看下面这个程序:   如果使用下面这种形式运行这个程序:   args数组将包含下列内容:   这个程序将显示下列信息:         C++注释:在Java应用程序的main方法中,程序名并没有存储在args数组中.例如,当使用下列命令运行程序时   args[0]是"-h&q

Java核心技术卷I基础知识1.5 关于Java的常见误解

1.5 关于Java的常见误解 在结束本章之前,我们列出了一些关于Java的常见误解,同时给出了解释. 1.?Java是HTML的扩展 Java是一种程序设计语言:HTML是一种描述网页结构的方式.除了用于在网页上放置Java applet的HTML扩展之外,两者没有任何共同之处. 2.?使用XML,所以不需要Java Java是一种程序设计语言:XML是一种描述数据的方式.可以使用任何一种程序设计语言处理XML数据,而Java API对XML处理提供了很好的支持.此外,许多重要的第三方XML工

Java核心技术卷I基础知识3.1 一个简单的Java应用程序

第3章 Java的基本程序设计结构 ▲  一个简单的Java应用程序     ▲  字符串 ▲  注释                      ▲  输入输出 ▲  数据类型               ▲  控制流 ▲  变量                      ▲  大数值 ▲  运算符                  ▲  数组   现在,假定已经成功地安装了JDK,并且能够运行第2章中给出的示例程序.我们从现在开始将介绍Java应用程序设计.本章主要介绍程序设计的基本概念(如数

Java核心技术卷I基础知识1.2.1 简单性

1.2.1 简单性 人们希望构建一个无须深奥的专业训练就可以进行编程的系统,并且要符合当今的标准惯例.因此,尽管人们发现C++不太适用,但在设计Java的时候还是尽可能地接近C++,以便系统更易于理解.Java剔除了C++中许多很少使用.难以理解.易混淆的特性.在目前看来,这些特性带来的麻烦远远多于其带来的好处. 的确,Java语法是C++语法的一个"纯净"版本.这里没有头文件.指针运算(甚至指针语法).结构.联合.操作符重载.虚基类等(请参阅本书各个章节给出的C++注释,其中比较详细

Java核心技术卷I基础知识3.7.2 格式化输出

3.7.2 格式化输出 可以使用System.out.print(x)将数值x输出到控制台上.这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x.例如:   打印   如果希望显示美元.美分等符号,则有可能会出现问题. 在早期的Java版本中,格式化数值曾引起过一些争议.庆幸的是,Java SE 5.0沿用了C语言库函数中的printf方法.例如,调用   可以用8个字符的宽度和小数点后两个字符的精度打印x.也就是说,打印输出一个空格和7个字符,如下所示:   在printf中,可以