Java学习笔记3 —— Java常见错误信息

Java常见错误信息及解决方法

编译错误

    Windows系统下常见编译错误
     'javac' is not recognized as an internal or external command, operable program or batch file.
    此提示信息表示Windows系统找不到编译器(compiler)。
    解决方法:(假设JDK的安装位置为C:\jdk1.7.0)
    1. 在命令行中包含JDK的安装路径;
        >C:\jdk1.7.0\bin\javac HelloWorldApp.java
        默认情况下,编译器(javac)在JDK安装路径下的bin文件夹中。
    2. 在Windows的环境变量中包含JDK的安装路径。

        1) Start > Control Panel > System > Advanced > Environment Variables;
           (开始 > 控制面板 > 系统 > 高级系统设置 > 环境变量...)

        2) 把安装好的JDK下的bin路径添加到PATH变量中,记得添加分号(;)。
            PATH变量的值为:<原PATH值末尾>;C:\jdk1.7.0\bin
            添加完PATH变量后,可以在命令行直接使用编译器(javac),而不用输入编译器所在的路径。
    
     Class names, "HelloWorldApp", are only accepted if annotation processing is explicitly requested
    在编译时发现此提示信息,表示在编译文件时没有添加.java后缀。编译java文件的命令行为javac HelloWorldApp.java,而不是javac HelloWorldApp。

    UNIX系统下常见编译错误
     javac: Command not found
    此提示信息为UNIX系统找不到编译器(javac)。
    解决方法:(假设JDK安装位置为 /usr/local/jdk1.7.0)
    1. 在命令行中包含JDK的安装路径;
        /usr/local/jdk1.7.0/javac HelloWorldApp.java
        主要是加入编译器(javac)所在位置。
    2. 修改系统的PATH变量。
        需要根据使用的Shell修改,不同的Shell修改方式不同。
    
     Class name, 'HelloWorldApp', are only accepted if annotation processing is explicitly requested
    此提示信息与Windows系统下相同,都表示编译文件时,命令行中的文件名没有加入.java后缀。

语法错误(所有平台) - Synatx Errors
    在程序源文件中有输入错误的时候,编译器会显示语法错误消息。错误信息包含错误发生的文件名、行号、错误类型、出错行代码、出错代码位置。
如以下出错信息:
testing.java:14:';' expected.
System.out.println("Input has " + count + " chars.")
                                                    ^
1 error
出错文件名:testing.java
出错行号:第14行
出错信息:需要分号(;)
出错行代码:System.out.println("Input has " + count + " chars.")
出错位置:^指示位置,出错代码的末尾
错误数:1

    如果由于缩进、代码块范围、缺少分号等错误,编译器不能准确定位错误位置,则会给出多个错误消息。
    任何编译错误的出现都表示编译不成功,且不会生成.class文件。需要找到并修复所有的编译错误,然后再重新编译。
    
语义错误
    编译器除了检查语法以外,还会检查基础语义,例如没有定义的变量,没有实例化的对象被直接使用等。

运行时错误
    Windows/UNIX系统下的运行时错误消息
     Exception in thread "main" java.lang.NoClassDefFoundError: HellowWorldApp
    以上错误表示启动器程序(java)没有找到可以执行的字节码(bytecode)文件(.class)。Java启动器程序默认先在当前目录下寻找被启动的.class文件。需要将当前工作目录切换到包含目标.class文件的目录下,再次执行java HelloWorldApp。

     Could not find or load main class HelloWorldApp.class
    以上错误信息表示执行了java HelloWorldApp.class。在命令行中,java命令后应该用需要用到的类名,而不是.clas的文件名。正确的执行方式为java HelloWorldApp。

     Exception in thread "main" java.lang.NoSuchMethodError:main
    以上错误信息表示所用到的类中没有包含main函数。Java虚拟机要求被java命令执行的的类中必须包含一个main函数。

Ref: http://docs.oracle.com/javase/tutorial/getStarted/problems/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值