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/上有一个很好的教程。其中提到了初学者经常容易犯的一些错误。

相关文章
|
4天前
|
监控 Java 物联网
Java串口通信技术探究1:深入理解RXTX库
Java串口通信技术探究1:深入理解RXTX库
15 2
|
1天前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第5天】在现代软件开发中,多线程编程是一个重要的概念,尤其是在Java这样的多平台、高性能的编程语言中。通过多线程,我们可以实现并行处理,提高程序的运行效率。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制方法,以及一些常见的多线程问题和解决方案。
|
4天前
|
存储 缓存 前端开发
Java串口通信技术探究3:RXTX库线程 优化系统性能的SerialPortEventListener类
Java串口通信技术探究3:RXTX库线程 优化系统性能的SerialPortEventListener类
18 3
|
4天前
|
安全 IDE Java
Java串口通信技术探究2:RXTX库单例测试及应用
Java串口通信技术探究2:RXTX库单例测试及应用
22 4
|
4天前
|
存储 前端开发 安全
13:会话跟踪技术Session的深度应用与实践-Java Web
13:会话跟踪技术Session的深度应用与实践-Java Web
16 3
|
4天前
|
存储 前端开发 搜索推荐
12:会话跟踪技术Cookie的深度应用与实践-Java Web
12:会话跟踪技术Cookie的深度应用与实践-Java Web
16 4
|
5天前
|
并行计算 Java 数据处理
Java中的多线程编程:基础知识与实践
【5月更文挑战第1天】本文将深入探讨Java中的多线程编程,包括其基本概念、实现方式以及实际应用。我们将从理论和实践两个角度出发,详细解析线程的创建、启动、控制以及同步等关键问题,并通过实例代码演示如何在Java中有效地使用多线程。
|
5天前
|
存储 Java 程序员
Java中的多线程编程:基础知识与实践
【5月更文挑战第1天】在现代计算机科学中,多线程是一种重要的并行计算技术,允许多个执行流程并发运行。本文将深入探讨Java语言中的多线程编程,从基础概念到实际应用,帮助读者理解多线程的核心原理,并通过实例学习如何在Java中创建和管理线程。我们将涵盖线程的生命周期、同步机制以及如何利用高级类如Executor框架来优化多线程应用的性能。通过本文的学习,读者将具备设计和实现高效、稳定多线程Java应用程序的能力。
6 2
|
5天前
|
供应链 Java API
Java 8新特性解析及应用区块链技术在供应链管理中的应用与挑战
【4月更文挑战第30天】本文将深入探讨Java 8的新特性,包括Lambda表达式、Stream API和Optional类等。通过对这些新特性的详细解析和应用实例,帮助读者更好地理解和掌握Java 8的新技术。
|
6天前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【4月更文挑战第30天】 在现代软件开发中,多线程编程是提高程序性能和响应能力的关键。Java作为一款广泛使用的编程语言,提供了丰富的多线程支持。本文将介绍Java多线程的基础概念、实现方法以及常见问题的解决策略。我们将从线程的创建和管理入手,逐步深入到同步机制、死锁避免以及高级并发工具类的应用。通过实例代码演示和理论分析,旨在帮助读者掌握Java多线程编程的核心技能,提升软件项目的并行处理能力。