为什么出现Exception in thread "main"

我是JAVA初学者,以前学过C语言,想用JAVA改写一下C语言的冒泡排序法,以下是我的程序。
但运行时却出现
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 (计算机编程语言)

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-24
错误上已经写的很清楚了啊at MaoPao.main(MaoPao.java:10) 在第10行有错,要学会看错误提示ArrayIndexOutOfBoundsException:数组下标越界,结合这两个可以很容易找到错误是你的for循环错了,for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
应该是:x[i]=input.nextInt();本回答被提问者采纳
第2个回答  推荐于2017-09-06
应该是
public static void main(String[] args)
还有下面的方法都必须加上static才能在main方法中直接调用
public static void printPattern1()
public static void printPattern2()
第3个回答  2008-05-09
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();
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]);
}
}
}
第4个回答  2008-05-09
int n=input.nextInt();
for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
数组越界
你的数组最后一个元素应该为a[99]

为什么出现Exception in thread "main"
出现"Exception in thread 'main'"通常意味着在Java程序的主线程中抛出了一个未被捕获的异常。详细来说,Java中的异常是程序在执行过程中出现的特殊条件,它打断了正常的程序流程。当异常发生时,如果没有适当的异常处理机制来捕获并处理这些异常,Java运行时环境会打印出堆栈跟踪信息,并且通常会包含"Exce...

exception in thread'main'是什么意思?
出现"Exception in thread 'main'"通常意味着在Java程序的主线程中抛出了一个未被捕获的异常。在Java中,异常是程序执行期间发生的问题或意外情况,它会打断正常的程序流程。当异常发生时,Java运行时系统会尝试查找能够处理该异常的代码块,这通常是通过try-catch语句来实现的。如果运行时系统找不到这样...

为什么出现Exceptioninthreadmain
出现"Exception in thread main"通常是因为在Java程序的主线程中发生了未捕获的异常。这种异常可能由多种原因引起,包括但不限于语法错误、逻辑错误、空指针异常(NullPointerException)、数组越界异常(ArrayIndexOutOfBoundsException)以及类型转换异常(ClassCastException)等。当异常发生时,如果程序中没有...

为什么出现Exceptioninthreadmain
`Exception in thread "main"` 是Java程序在运行时遇到错误时,在控制台输出的一种常见错误信息。这个异常表明在Java程序的主线程(main线程)中发生了异常。主线程是程序开始执行时创建的第一个线程,负责执行程序的`main`方法。出现这个异常的原因多种多样,包括但不限于:1. **空指针异常**(NullP...

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

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

java报错Exception in thread "main" java.lang.NoClassDefoundError...
遇到 "Exception in thread "main" java.lang.NoClassDefoundError" 这样的Java错误,主要原因是程序试图加载的类未能找到。解决这类问题的关键是根据错误提示寻找类的缺失位置。例如,我在使用infinispan时遇到了这个问题,报错指出"无法访问org.infinispan.commons.configuration.ConfigurationBuilderInfo",并...

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

java 老是提示:Exception in thread "main"
1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans...

出现这个Exception in thread "main" java.lang.NoSuchMethodError: m...
main方法必须定义在public class中,所以出错了,简单的改法就是把Ring类的public去掉,在Example类前加上修饰public

相似回答