二、命令篇
7 我写了第一个 Java 程序,应该如何编译/运行?
答:首先请将程序保存为 xxx.java 文件,然后在 dos 窗口下使用 javac
xxx.java 命令,你会发现该目录下多了一个 xxx.class 文件,再使用 java
xxx 命令,你的 java
程序就开始运行了。
8 我照你说的做了,但是出现什么" javac
′
′ 不是内部或外部命令,也不是
可运行的程序或批处理文件。"
。
答:你遇到了 path 问题。操作系统在一定的范围(path)内搜索 javac.exe,但
是没能找到。请编辑你的操作系统环境变量,新增一个 JAVA_HOME 变量,设
为你 JDK 的安装目录,再编辑 Path
变量,加上一项 %JAVA_HOME%\bin。然
后关掉并新开一个 dos 窗口,你就可以使用 javac 和 java
命令了。
9 环境变量怎么设置?
答:
请向身边会设的人咨询。
10 javac xxx.java 顺利通过了,但是 java xxx 的时候显示什
么"NoClassDefFoundError"?br>
答:你遇到了 classpath 问题。java 命令在一定的范围(classpath)内搜索你要
用的 class
文件,但是未能找到。
首先请确认你没有错敲成 java xxx.class,其次,检查你的 CLASSPATH 环境
变量,如果你设置了该变量又没有包含.(代表当前目录)的?br> 睿?br>
你就会遇到这个问题。请在你的 CLASSPATH
环境变量中加入一项 。另外参见
15
。
11 我在 java xxx 的时候显示"Exception in thread "main"
java.lang.NoSuchMethodError: main"
。
答:首先,在你的程序中每个 java 文件有且只能有一个 public 类,这个类的
类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一
个 public static void main(String[] args)
方法,这个方法就是你的主程序。
12 package 是什么意思?怎么用?
答:为了唯一标识每个类并分组,java 使用了 package
的概念。
每个类都有一个全名,例如 String 的全名是 java.lang.String,其中
java.lang 是包名,String
是短名。
这样,如果你也定义了 String,你可以把它放在 mypackage 中,通过使用
全名 mypackage.String 和 java.lang.String 来区分这两个类。同时,将逻辑
上相关的类放在同一个包中,可以使程序结构更为清楚。你要做的就是在 java
文件开头加一行"package mypackage;"
。
注意包没有嵌套或包含关系,A 包和 A.B 包对 java 命令来说是并列的两个包。
13 我没有声明任何 package 会怎么样?
答:
你的类被认为放在默认包中。这时全名和短名是一致的。