java 老是提示:Exception in thread "main"

java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Exception in thread "main"

---------------------
运行的时候总是提示以上错误,java环境都安装了,测试过也是对的,win7的系统

    这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。

    1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。

    2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。

    综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。

见下图:

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-09
JDK版本的问题,打开windows-prefreces-Compiler -然后选择jdk1.5即可!
第2个回答  2010-09-09
jdk版本错误,应该编辑版本和运行版本不是同一个
第3个回答  推荐于2016-08-04
1.主线程出现异常,你应该知道什么是主线程吧,
这个到底是什么地方出问题了就不清楚了
2.找不到资源(Unknown Source)你这个是不是向Java里插入图片等
外来的资源啊,看看你程序里连接的图片等,到底存不存在于指定文件夹
3..UnsupportedClassVersionError,试着更新一下JDK,现在都用1.6版本,或者叫 6 版本,如果用Eclipse的话讲compiler中的版本也改为 6

你又没给代码,按照异常提示,也只能给你指点这些了。本回答被提问者采纳
第4个回答  2010-09-09
你在较低版本的JDK环境运行了高版本JDK写的程序。

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

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

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

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

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

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"表示你尝试访问的数组索引超出了其范围。数组索引通常从0开始,如果你有一个长度为2的数组,你不能访问索引3,因为3是数组边界...

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

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

java中编译时出现Exception in thread "main" java.lang.NoClassDefFoundE...
这个是你的编译的路径错误了,你必须把编译当前路径指到你的Java文件存放的路径去才行。比如你把 MySecond.java 放在d:\/java这个文件夹里,那么你要执行的操作是“cd d:\/java”回车。若没有变化 再执行“D:”回车。这样 你就可以对d盘的Java文件夹中的 Java文件进行编译了。

相似回答