最近在学习自然语言处理,需要用到 java ,便按照菜鸟教程的方法安装了 java 和 Eclipse IDE 。
一般很自然的要写一个 HelloWorld 来测试运行环境是否配置正确。不过我在执行这个命令的时候就出了问题,命令及提示如下:
D:\helloworld>java HelloWorld
错误: 找不到或无法加载主类 HelloWorld
原因: java.lang.NoClassDefFoundError: helloworld/HelloWorld (wrong name: HelloWorld)
肯定是哪里出了问题,需要检查命令、系统环境变量配置、代码三个方面:
命令
java运行需要先使用“javac HelloWorld.java”命令对java文件进行编译,编译会自动生成一个同名的以“.class”为后缀的类文件放在同一目录,然后再执行“java HelloWorld”来运行。(注意:此处运行“java”命令,java后只能跟文件名,不需要任何后缀,否则也会报错)
我书写的命令不存在这个问题,可以排除!
系统环境变量
我使用的是 win10 系统,按菜鸟教程对系统环境变量进行了正确配置,如下:
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk-10.0.1\ // 要根据自己的实际路径配置
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"."
变量名:Path
变量值:C:\Program Files\Java\jdk-10.0.1\bin;C:\Program Files\Java\jdk-10.0.1\jre\bin;
这一点也没有问题,可以排除。
代码
排除以上两方面的问题,以及拼写错误,那问题基本就可以确定出在代码上面,因为我是用Eclipse创建的类,代码如下:
package helloworld;
public class HelloWorld {
public static void main(String []args) {
System.out.println("Hello World");
}
}
在运行时,仍然会出现错误提示,可见是这段代码的问题,其实就是Eclipse自动加上的这段代码有问题—— “package helloworld;” ,这是不需要的,删除之后保存,再次在CMD下执行。
D:\helloworld>java HelloWorld
Hello World
结果OK