file.read(last128);
你这一行有问题,你读文件的时候没有指定读多少个字节,那么系统会取它的默认值,而你的字符串长度又定义成200个,这个时候它读取的字符串的长度肯定会比200大,所以就越界了。

解决方案 »

  1.   

    1、
      public static void main(String[] arguments)
      File song = new File(arguments[0]);  arguments[0]是一个需要从命令行录入的参数,当你单独执行的时候,arguments没有值,你直接去取arguments[0],当然会出现越界问题2、
      你应该先编译ReadID3.java文件
      javac ReadID3.java
      然后java ReadID3 xm.mp3
      

  2.   

    我当然是先编译再执行喽
    还有那个我是赋值了byte[] last128=new byte[128];
    还是有问题
      

  3.   

    Exception in thread"main" java.lang.NoClassDefFoundError: ReadID3
    这句话不应该是执行过程中的问题,可能是你的java环境没有配置好
      

  4.   

    是你执行的时候路径没配置好,系统找不到ReadID3,看看你的classpath
      

  5.   

    C:\Program Files\Apache Group\Tomcat 4.1\common\lib\serlet.jar
      

  6.   

    用一个保险的测试方法你试试,把你的这个类文件放到你的JDK\BIN所在的目录,再用javac,java试试看,