java 程序运行时,老是出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5

我的代码本来是没问题的
开始在NetBIeans还是运行的还好好的
不知道后来怎么就突然出错的代码
不管什么代码都是这样的
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5

我从网上copy好多代码出现的都是这样的
于是我换成在dos界面于是又成图片所示的情况啊

我的代码 是
package paixu;
import java.util.Scanner;
/**
*
* @author lg
*/
public class Test{

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

System.out.println("请输入要排序的数:");

int a[]={0};
int i;
int t;
for(i=0;i<5;i++)
{
Scanner scanner = new Scanner(System.in);
a[i] = scanner.nextInt();
}
for(i=0;i<5;i++)

if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}

for(i=0;i<5;i++)
System.out.println("第i个数是:"+a[i]);

}

}

然后是path:E:\Program Files\Java\jdk1.6.0_10\bin
classpath:.;E:\Program Files\Java\jdk1.6.0_10\lib

不知道为什么会这样的啊~·
高手出现吧
于是试过两位的方法
第一位的是这样说的 javac 找不到文件javac paixu\Test.java
用法是;javac 〈options〉〈source files〉-help 用于列举可能的选项
第二位的改了代码还是原样
在dos不行
在NetBeans是
init:
deps-jar:
compile:
run:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at javaapplication4.Main.main(Main.java:28)
请输入要排序的数:
Java Result: 1
成功生成(总时间:0 秒)
于是是这样的

肯定的会报这种异常的,解决办法很简单,因为你用到了package
在DOC下这样来编译和运行:
D:/>javac paixu/Test.java

D:/>java paixu.Test

就行了
注意,前提是你的paixu这个文件夹在D盘的根目录下
==========================
看了你的补充,你真是个初学者
你的文件目录结构是这样的话:
D-
|_paixu
|_Test.java
|_Test.class

上面的命令才能通过
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-29
是你用法错了,你要录入够5个数,我简单加了个提示

package paixu;
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
System.out.println("请输入要排序的数:");

int a[] = new int[5];
for (int i = 0; i < a.length; i++) {
System.out.println("请输入第"+(i+1)+"个数:");
Scanner scanner = new Scanner(System.in);
a[i] = scanner.nextInt();
}
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}

for (int i = 0; i < 5; i++) {
System.out.println("第" + (i + 1) + "个数是:" + a[i]);
}

}

}
第2个回答  2010-09-29
很简单
package paixu;
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
System.out.println("请输入要排序的数:");

int a[] = new int[5];
for (int i = 0; i < a.length; i++) {
Scanner scanner = new Scanner(System.in);
a[i] = scanner.nextInt();
}
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-i-1; j++) {
if (a[j]>a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}

for (int i = 0; i < 5; i++){
System.out.println("第"+(i+1)+"个数是:" + a[i]);
}

}

}本回答被提问者采纳
第3个回答  2010-09-29
int a[]={0};这一句有误,这样说明你的数组a长度为一,
int a[]={0,0,0,0,0};可以这样初始化
也可以int a[]=new int[5];
for(int i=0;i<5;i++)
a[i]=0;
赋初值
第4个回答  2010-09-30
1.“a[i+1]”,你为什么会写出这样的代码?不是自找“java.lang.ArrayIndexOutOfBoundsException”吗?

2.包名!

java 程序运行时,老是出现Exception in thread "main" java.lang.Array...
肯定的会报这种异常的,解决办法很简单,因为你用到了package 在DOC下这样来编译和运行:D:\/>javac paixu\/Test.java D:\/>java paixu.Test 就行了 注意,前提是你的paixu这个文件夹在D盘的根目录下 === 看了你的补充,你真是个初学者 你的文件目录结构是这样的话:D- |_paixu |_Test.java ...

java程序出现Exception in thread "main"是什么问题?
这句话表示异常出现在main这个线程里面,错误是java.lang.ArrayIndexOutOfBoundsException。这个错误是你下标获取超出范围了,一般是例如你数组长度为2.但是你获取数组[3].这时候就会报这个错,建议你自己学会调试。。希望能够帮到你!

java程序出现Exceptioninthread"main"是什么问题?
当你在Java程序中遇到"Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException"这样的错误时,首先要明白这是主线程中出现的异常,具体指向了Java.lang.ArrayIndexOutOfBoundsException。这个异常的发生意味着你在访问数组时超出了其指定的索引范围。想象一下,如果你有一个长度为2的数组,但尝试...

...in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0...
回答:r=Double.parseDouble(args[0]); 数组下标溢出,public static void main(String[]args)这里只定义数组又没初始化你着急用个啥啊!你完全可以在控制台让用户输入一个半径参数用嘛 Scanner in=new Scanner(System.in); Sysout.out.print("请输入半径:"); int radis=in.nextInt();

...in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0...
你运行时没有给main方法传参数,args[] 这个数组为空,所以下标越界。你在运行时应该先配置运行参数,给 main方法传数字进去。或者int t=12345;直接指定一个数字

java程序出现Exception in thread "main"是什么问题?
当你在Java程序中遇到"Exception in thread "main""这样的错误时,这意味着异常发生在程序的主要执行线程中。具体来说,错误信息"java.lang.ArrayIndexOutOfBoundsException"表示你尝试访问的数组索引超出了其范围。数组索引通常从0开始,如果你有一个长度为2的数组,你不能访问索引3,因为3是数组边界...

...in thread main java.lang.ArrayIndexoutofbounds exeption:4_百度...
for(int i=1;i<=4;i++) 这句循环越界了,你只是JButton[] fuy1=new JButton[4];数组里面只有0-3的位置有数据,但是你却循环到了四。exception in thread main java.lang.ArrayIndexoutofbounds 这句就是提示数组越界的异常。

...in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9...
public class MySort { static void sort(int []a){ int com;\/\/int al=a.length;\/\/int []b=new int[al];\/\/if(al>=0){ for(int j=0;j<9;j++){ for(int i=1;i<9-j;i++){ if(a[i]<a[i-1]){ \/\/a[i+1]错了,导致数组溢出 com=a[i-1];a[i-1]=a[i];a...

...in thread "main" java.lang.ArrayIndexOutOfBoundsException:0是...
java Sum 5 args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av....

...in thread "main" java.lang.ArrayIndexOutOfBoundsException: 求...
public class Ggg { public static void main(String args[]){ int []Ft={2,34,32,21,345,432,33};int i=0,j=0,temp=0;for(j=0;j<7;j++){ for(i=0;i<6-j;i++){ if(Ft[i]>Ft[i+1]){ temp=Ft[i];Ft[i]=Ft[i+1];Ft[i+1]=temp;} } } for(i=0;i<7;i+...

相似回答