Java 编译全解【CSDN精品推荐】
### Java编译全解 #### 一、引言 对于初学者而言,Java语言的魅力是巨大的,但在实际操作中遇到的编译问题却往往成为学习道路上的第一道障碍。特别是关于`classpath`的设置以及对`package`概念的理解,这两点常常让初学者感到困惑不解。本文将通过一系列实例,详细介绍在编译Java程序时如何正确设置`classpath`,并通过具体步骤演示整个过程。 #### 二、实验环境与准备工作 本文示例基于以下环境: - **操作系统**:Windows XP SP2 - **Java版本**:JDK 1.5.0 其他环境下的用户可以根据实际情况进行相应调整。 #### 三、JDK安装与配置 1. **安装JDK**:首先确保已经正确安装了JDK 1.5.0,并将其安装路径设为`D:\jdk1.5.0`。 2. **打开命令行窗口**:可以通过“开始”菜单中的“运行”选项输入`cmd`来打开命令行界面。 3. **验证JDK安装**:在命令行中输入`java -version`,如果能够正确显示JDK版本信息,则说明安装成功。 4. **配置环境变量**:为了方便使用Java编译器(`javac`),我们需要将JDK的`bin`目录添加到系统环境变量`Path`中。具体步骤如下: - 右键点击“我的电脑”,选择“属性” -> “高级” -> “环境变量”。 - 在系统变量中找到`Path`变量,编辑其值,在末尾加上`;D:\jdk1.5.0\bin`。注意,这里的分号(`;`)是用来分隔路径的。 5. **测试`javac`命令**:重新打开命令行窗口,尝试执行`javac`命令,如果没有错误提示,则说明配置成功。 #### 四、设置`JAVA_HOME`环境变量 除了配置`Path`外,还需要设置`JAVA_HOME`环境变量,以便于后续使用其他工具(如JUnit、Ant、NetBeans等)时能够自动识别JDK的安装位置。 1. **创建`JAVA_HOME`变量**:在“环境变量”窗口中新建一个系统变量,名称为`JAVA_HOME`,值设为`D:\jdk1.5.0`。 2. **更新`Path`变量**:修改`Path`变量的值,将`D:\jdk1.5.0\bin`替换为`%JAVA_HOME%\bin`。这样做的好处是,当JDK的位置发生变化时,只需修改`JAVA_HOME`的值即可,而无需更改`Path`。 #### 五、编译第一个Java程序 接下来,我们尝试编译一个简单的Java程序“Hello.java”。 1. **创建源代码文件**:在`C:\JavaTest`目录下创建一个名为`Hello.java`的文件,内容如下: ```java public class Hello { public static void main(String[] args) { System.out.println("Hello, world"); } } ``` 2. **编译程序**:在命令行中进入`C:\JavaTest`目录,然后执行`javac Hello.java`。如果一切正常,将会生成`Hello.class`文件。 #### 六、运行程序与`classpath`问题 1. **运行程序**:使用`java Hello`命令运行程序,此时会输出“Hello, world”。 2. **`classpath`的作用**:如果程序无法找到类文件(`.class`文件),则可能是因为没有正确设置`classpath`。默认情况下,JVM会在当前目录下查找类文件。 3. **解决方法**: - 在命令行中指定完整的类文件路径,例如`java C:\JavaTest\Hello`。 - 或者设置`classpath`环境变量指向类文件所在的目录,例如设置`classpath=.;C:\JavaTest`。这里`.`表示当前目录,`C:\JavaTest`则是类文件所在的位置。 #### 七、总结 通过以上步骤,我们不仅了解了如何安装和配置JDK,还掌握了如何通过命令行编译和运行Java程序,以及如何处理常见的编译错误。特别地,对于`classpath`的设置和理解尤为重要,它关系到程序能否正确加载类文件。希望本文能帮助初学者顺利跨越入门阶段,更好地投入到Java的学习之旅中。
Java很诱人,但对于刚跨入Java门槛的初学者来说,编译并运行一个无比简单的Java程序简直就是一个恶梦。明明程序没错,但各种各样让人摸不着头脑的错误信息真的让你百思不得其解,许多在Java门口徘徊了很久的初学者就这样放弃了学习Java的机会,很是可惜。笔者也经历过这个无比痛苦的阶段,感觉到编译难的问题就出在classpath的设置及对package的理解之上。本文以实例的方式,逐一解决在编译过程中所出现的各种classpath的设置问题。本文实例运行的环境是在Windows XP SP2 + JDK 1.5.0。对其他的环境,读者应该很容易进行相应的转换。
1. 下载并安装JDK1.5.0,安装到D:\jdk1.5.0中。
2. 用鼠标单击WindowsXP的“开始”->“运行”,在弹出的运行窗口中输入cmd,按确定或回车,打开一个命令行窗口。
3. 在命令行中输入:
java
有一列长长的洋文滚了出来,这是JDK告诉我们java这个命令的使用方法。其中隐含了一个重要信息,即JDK安装成功,可以在命令行中使用java此命令了。
4. 在命令行中输入:
javac
屏幕显示:
'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。
这是由于windows找不到javac这个命令的原因。这就不明白了,java与javac都是JDK在同一个子目录里面的两个文件,为什么可以直接运行java而不能直接运行javac呢?原来,Sun公司为了方便大家在安装完JDK后马上就可以运行Java类文件,在后台悄悄地将java命令加入了Path的搜索路径中,因此我们可以直接运行java命令。但Sun所做的到此为止,其他JDK的命令,一概不管,需要由用户自己添加到搜索路径中。
5. 既然如此,那我们自己添加Path的搜索路径吧。对“我的电脑”按右键,选“属性”,在“系统属性”窗口中选“高级”标签,再按“环境变量”按钮,弹出一个“环境变量”的窗口,在“系统变量”中编辑名为“Path”的变量,添加变量值“D:\jdk1.5.0\bin;”,并且将此值新加到其前面。一路按“确定”退出(共有3次)。关掉原来的命令行窗口,依照第2步,重新打开一个新的命令行窗口。在此窗口中输入:
javac
长长的洋文又出现了,这回是介绍javac的用法。设置成功。
6. 到目前为止,我们已经可以编程了。但是,这不是一个好办法。因为随着以后我们深入学习Java,我们就会用到JUnit、Ant或NetBeans等应用工具,这些工具在安装时,都需要一个名为指向JDK路径的“JAVA_HOME”的环境变量,否则就安装不了。因此,我们需要改进第5步,为以后作好准备。依照第5步,弹出“环境变量”的窗口,在系统变量中新建一个变量,变量名为“JAVA_HOME”,变量值为“D:\jdk1.5.0”。注意,这里的变量值只到jdk1.5.0,不能延伸到bin中。确定后,返回“环境变量”的窗口,双击我们原先设定的Path变量,将第5步设置添加的值"D:\jdk1.5.0\bin"修改为“%JAVA_HOME%\bin”。这种效果与第5步是完全一样的,只不过多了一个 JAVA_HOME 的变量。这样,以后当我们需要指向JDK的路径时,只需要加入“%JAVA_HOME%”就行了。至此,Path路径全部设置完毕。一路确定退出,打开新的命令行窗口,输入:
javac
如果长长的洋文出现,Path已经设置正确,一切正常。如果不是,请仔细检查本步骤是否完全设置正确。
7. 开始编程。在C盘的根目录中新建一个子目录,名为“JavaTest”,以作为存放Java源代码的地方。打开XP中的记事本,先将其保存到JavaTest文件夹中,在“文件名”文本框中输入"Hello.java"。注意,在文件名的前后各加上一个双引号,否则,记事本就会将其存为“Hello.java.txt”的文本文件。然后输入以下代码:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world");
}
}
再次保存文件。
8. 在命令行窗口中输入:
cd C:\JavaTest
将当前路径转入JavaTest中。然后,输入:
javac Hello.java
JDK就在JavaTest文件夹中编译生成一个Hello.class的类文件。如果出现“1 error”或“XX errors”的字样,说明是源代码的输入有误,请根据出错提示,仔细地按第7步的代码找出并修正错误。请读者注意甄别代码输入有误的问题与classpath设置有误的问题。因为本文是关于如何正确设置classpath及package的,因此,这里假设读者输入的代码准确无误。到目前为此,由于我们是在源代码的当前路径下编译,因此,不会出现classpath设置有误的问题。
9. 在命令行窗口中输入:
java Hello
屏幕出现了:
Hello world
成功了,我们已经顺利地编译及运行了第一个Java程序。
但是,第8步及第9步是不完美的,因为我们是在JavaTest这个存放源码的文件夹中进行编译及运行的,因此,一些非常重要的问题并没有暴露出来。实际上,第8步的“javac Hello.java”及第9步的“java Hello”涉及到两个问题:
一 是操作系统如何寻找“javac”及“java”等命令:
二 是操作系统如何寻找“Hello.java”及“Hello.class”这些用户自己创建的文件。
剩余10页未读,继续阅读
- 粉丝: 1
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助