为什么出现Exception in thread "main"
但运行时却出现
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at MaoPao.main(MaoPao.java:10)
请教大虾指导
import java.util.*;
public class MaoPao {
public static void main(String[] args){
int x[]=new int[100];
int j,temp;
Scanner input=new Scanner(System.in);
System.out.print("input n:");
int n=input.nextInt();
for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
for(int i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(x[j]>x[j+1]){
temp=x[j];
x[j]=x[j+1];
x[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
System.out.println(x[i]);
}
}
} 展开
这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。
1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。
2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。
扩展资料:
class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。
class文件径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。
参考资料来源:百度百科-class文件
参考资料来源:百度百科-Java (计算机编程语言)
x[100]=input.nextInt();
}
应该是:x[i]=input.nextInt();
public static void main(String[] args)
还有下面的方法都必须加上static才能在main方法中直接调用
public static void printPattern1()
public static void printPattern2()
public class MaoPao {
public static void main(String[] args) {
int x[] = new int[100];
int j, temp;
Scanner input = new Scanner(System.in);
System.out.print("input n:");
int n = input.nextInt();
System.out.println("请输入" + n + "个数字:");
for (int i = 0; i < n; i++) {
x[i] = input.nextInt(); //楼主这里应该是i吧
}
for (int i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (x[j] > x[j + 1]) {
temp = x[j];
x[j] = x[j + 1];
x[j + 1] = temp;
}
}
}
System.out.println("结果是:");
for (int i = 0; i < n; i++) {
System.out.println(x[i]);
}
}
}
for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
数组越界
你的数组最后一个元素应该为a[99]