1、第一个 JAVA 例程:hello world 执行时的问题:problems Executing Hello 如果你看到下面的错误提示: 'java' is not recognized as an internal or external command, ... or java: Command not found. 那么你或许没有安装 java 或者在环境变量中并没有设置 path 路径 java\bin 目录。请检查你 的 java 安装以及环境变量的正确设置。 如果你看到: Exception in thread "main" java.lang.NoClassDefFoundError: hello (wrong name: Hello) ... 那么你很有可能是因为没有注意大小写或是把名称中的字母打错了。如: java hello 键入正确的命令重新运行即可。 如果你看到: Exception in thread "main" java.lang.NoClassDefFoundError: Hello /class 那么你需要考虑是否去掉名字中的.class 部分。 2、分析出现 java.lang.NoClassDefFoundError 异常的具体情况 这个问题在上面调试第一个例程出现过,但是如果我们输入的名称是正确的,仍然提示这 样的
问题时怎么办呢? 装了 JDK1.4.0 版,而且 JAVA_HOME,PATH 和 CLASSPATH 都设置好了。如下 JAVA_HOME=/home/jdk CLASSPATH=$JAVA_HOME/jre/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/: $JAVA_HOME/lib PATH=$PATH:$JAVA_HOME/bin 用 JAVAC 命令生成了 hello.class,当使用 java hello 时,仍然提示: Exception in thread "main" java.lang.NoClassDefFoundError:XXX(wrong name: XXX) 解决提示: (1)、Add (current directory) to your classpath 或类定义前面加 public (2)、path 环境变量中设置的路径中是否有另一个 java.exe 文件, 默认执行的是这个目录下的 java.exe,虽然版本与 JDK 下的 java.exe 一致,但是在此目录下执行就会出错。
方法: 安装了 JDK 的情况下,应该删除 winnt 下的 java.exe,确保默认调用的 java.exe 是位于 jdk 中 bin 目录下的 java.exe。 (3)、假如你使用了 packet 那么检查你在编译了没有将指定 package 包在你文件中的 java 文件。 3、通常异常捕获处理: JAVA 中几个基本异常简单的描述一下: ArithmeticException 当出现异常算术条件时产生 NullPointerException 当应用程序企图使用需要的对象处为空时产生 ArrayIndexOutOfBoundsException 数组下标越界时产生 ArrayStoreException 当程序试图存储数组中错误的类型数据时产生 FileNotFoundException 试图访问的文件不存在时产生 IOException 由于一般 I/O 故障而引起的,如读文件故障 NumberFormatException 当把字符串转换为数值型数据失败时产生 OutOfMemoryException 内存不足时产生 SecurityException 当小应用程序(Applet)试图执行由于浏览器的安全设置而不允许的动作 时产生 StackOverflowException 当系统的堆栈空间用完时产生 StringIndexOutOfBoundsException 当程序试图访问串中不存在的字符位置时产生 上述出现的异常基本上都是 JAVA 中我们可能会遇到的异常。 类 Throwable 有两个直接子类:E
rror 和 Exception。Exception 类对象是 Java 程序处理或抛 弃的对象。Java 提供了两种 Exception 的模式,一种是执行的时候所产生的 Exception (Ru ntime Exception),另外一种则是受控制的 Exception (Checked Exception)。所有的 Checked Exception 均从 java.lang.Exception 继承而来,而 Runtime Exception 则继承 java.lang.Runti meException 或 java.lang.Error (实际上 java.lang.RuntimeException 的上一层也是 java.lang. Exception)。它有各种不同的子类分别对应于不同类型的例外。其中类 RuntimeException 代 表运行时由 Java 虚拟机生成的例外。 程序的运作机制上看,Runtime Exception 与 Checked Exception 不一样,从逻辑上看,R untime Exception 与 Checked Exception 在使用的目的上也不一样。 一般而言,Checked Exception 表示这个 Exception 必须要被处