图片:

显示版本的命令提示符

错误图片

Hello.java

import java.applet.Applet;
import java.awt.*;

public class Hello extends Applet {

    // Java applet to draw "Hello World"
    public void paint (Graphics page) {
        page.drawString ("Hello World!", 50, 50);
    }
}

Hello.html

<HTML>
    <HEAD>
        <TITLE>HelloWorld Applet</TITLE>
    </HEAD>

    <BODY>
        <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
        </APPLET>
    </BODY>
</HTML>

错误

Hello : Unsupported major.minor version 52.0

可能是什么问题?


解决这个问题的聪明方法是使用最新的SDK进行编译,并在编译时使用交叉编译选项。要完全正确地使用这些选项,需要目标版本的JRE(而不是JDK)的rt.jar。

考虑到该applet的性质,它看起来可以被编译为与Java 1.1一起使用,这意味着您将使用javac -target 1.1。


我也有同样的问题……JDK和插件版本冲突。

我使用1.8编译…最近的一次,这条信息开始出现。 所以我搜索了JRE 7 (http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html)…并安装了它…再次…… 现在1.8和1.7在同一台计算机上。

使用NetBeans、编译和目标版本1.7解决了我的问题。


如果您正在使用NetBeans IDE,右键单击项目并选择属性并转到源代码,您可以将源代码/二进制格式更改为较低的JDK版本。


您需要在IDE中将编译器遵从级别更改回1.7。

这可以在IDE的首选项设置中完成。例如,在Eclipse中进入菜单Windows→Preferences,选择Java,并展开它。然后选择Compiler并将遵从级别更改为1.7。我相信从那时起就会起作用。


我在安装一个新的Java 1.8时遇到了这种情况,但保留了旧的命令行解释器。

它有一个旧的路径,并继续使用Java 1.7执行应用程序,而项目已经使用Java 1.8构建。


您必须使用相同版本的Java运行和编译应用程序。

如果你正在使用Eclipse,你应该做两件事:

In Eclipse, click on "Window > Preferences", and in the window that appears, on the left side, under "Java", click on "Installed JREs", click on "Add..." and navigate to the folder that contains the JDK. Right-click on your project and click on "Properties", in the window that appears, on the left side, click on "Java Compiler" and uncheck "Use compliance from execution environment on the Java Build Path", this allows you to choose in the the list "Compiler compilance level" the same version that you set in the previous step.


如果您使用的是Eclipse v4.4 (Luna),并且已经完成了上面提到的所有步骤,那么您可能需要检查Run Configurations设置。

可能有几种可能导致此错误。根本原因是需要在JDK1.8/JRE8中编译的项目不匹配,而环境编译器是JDK1.7/JRE7。

你可以查看我的博客文章,看看你的设置是否正确。


请使用JDK 1.7.0版本,而不是JDK 1.8.0版本。

为了确保这一点,您需要删除计算机上的JDK 1.8.0。

如果使用Mac,则需要删除:

/ Library / Java / JavaVirtualMachines jdk / / jdk。

/ Library / PreferencePanes / JavaControlPanel prefPane。

/library/Internet plug-ins/JavaAppletPlugin.plugin

然后,您需要重新安装JDK 1.7.0,您将成功生成.jar文件。


我安装了Java 1.7和1.8 (SBT 2.4需要Java 1.8)。 尽管我的项目链接到Java 1.8,但我必须将JAVA_HOME环境变量更改为点1.8。 问题终于解决了。


这些答案对我都没有帮助,但我找到了一个解决方案。 我有一个在Wildfly 8.2中使用的webproject,用Maven构建,源和目标在Maven -compiler-plugin上设置为1.8,所有Eclipse和Maven设置都设置为Java 1.8。 问题是Wildfly 8.2不能处理Java 1.8,所以我必须将所有内容都设置为1.7,然后它就工作了。


您需要将Java版本升级到Java 8。

下载最新的Java档案

从官方下载页面下载最新版本的Java SE Development Kit 8,或使用以下命令从shell下载。

64位

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz"

 # tar xzf jdk-8u51-linux-x64.tar.gz

对于32位

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-i586.tar.gz"

  # tar xzf jdk-8u51-linux-i586.tar.gz

注意:如果上面的wget命令对您不起作用,请观看这个示例视频以使用终端下载Java源存档。

使用替代方案安装Java

在提取归档文件之后,使用alternatives命令来安装它。可在chkconfig包中使用alternatives命令。

 # cd /opt/jdk1.8.0_51/

 # alternatives --install /usr/bin/java java /opt/jdk1.8.0_51/bin/java 2

 # alternatives --config java

此时,Java 8已经成功安装在您的系统上。我们还建议使用其他选项来设置javac和jar命令路径:

 # alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_51/bin/jar 2

 # alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_51/bin/javac 2

 # alternatives --set jar /opt/jdk1.8.0_51/bin/jar

 # alternatives --set javac /opt/jdk1.8.0_51/bin/javac

检查已安装Java版本

使用以下命令检查已安装的Java版本。

root@tecadmin ~# java -version

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

配置环境变量

大多数基于java的应用程序使用环境变量来工作。使用如下命令设置Java环境变量:

设置JAVA_HOME变量

# export JAVA_HOME=/opt/jdk1.8.0_51
Setup JRE_HOME Variable

# export JRE_HOME=$JAVA_HOME/jre
Setup PATH Variable

# export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

注意,对PATH变量的更改将新的Java bin文件夹放在前面,以便它们覆盖路径中任何现有的Java /bin。在路径中留下两个java/bin文件夹有点草率,因此建议将它们作为单独的任务清理。

此外,将上述所有环境变量放在/etc/environment文件中,以便在系统引导时自动加载。


我可以使用下面的解决方案来解决同样的问题。

在我的项目中,我添加了一个用Java 8创建的JAR文件。我的项目引用的是JRE 7。当我将项目JRE更改为8时,我的问题就解决了。

步骤:

在Eclipse中,右键单击项目资源管理器中的项目名称→构建路径→库→单击JRE版本→单击编辑→已安装JRE→添加→标准虚拟机→选择JRE home -path(路径应为localePath\java\jdk1.8.0_25\ JRE)→提供名称→保存→选择相同的JRE项目→完成→确定。刷新/构建项目一次→尝试运行Java文件。它应该会起作用。


如果您正在使用Eclipse,请确保您的菜单Project→Properties→Java构建路径→libraries→JRE系统库符合您的项目需求(如图所示)。


如果你正在使用IntelliJ IDEA,进入项目结构(Ctrl + Alt + Shift + S),你可以改变项目的JDK。


我想加上这个。我今天遇到了这个问题。调整了我的项目中的设置,重新构建,同样的问题。我曾经(错误地)假设更改我的项目(Eclipse)中的设置也会导致我的项目所依赖的项目也被重新编译。 调整依赖树中所有项目的设置就解决了这个问题。


这个问题是因为Java版本不匹配。参考JVM规范,以下是用于不同Java版本的类文件的主要版本。(到目前为止,所有版本都支持以前的所有版本。)

Java SE version Major version
1.0.2 45
1.1 45 (Not a typo, same version)
1.2 46
1.3 47
1.4 48
5.0 49
6 50
7 51
8 52
9 53
10 54
11 55
12 56
13 57
14 58
15 59
16 60

这些是指定的主要号码。关于不支持的major的错误。次要版本是因为在编译期间使用了更高的JDK,而在运行时使用了更低的JDK。

因此,'major。次要版本52.0'错误可能是因为jar是在JDK 1.8中编译的,但您正在尝试使用JDK 1.7环境运行它。报告的号码是需要的号码,而不是您正在使用的号码。要解决这个问题,最好让JDK和JRE指向相同的版本。

IntelliJ IDEA中,

进入Maven设置→Maven→导入。将导入器使用的JDK设置为1.8。 点击Maven设置→Maven→Runner。JRE版本设置为1.8。 进入菜单文件*→项目结构→sdk。确保JDK主路径设置为1.8。

重启IntelliJ IDEA。

另一种可能有帮助的方法是指示IntelliJ IDEA使用哪个JDK版本启动。

进入:/Applications/IntelliJ\ IDEA\ 15\ CE.app/Contents/Info.plist 将JVM版本替换为:

<key>JVMVersion</key>
<string>1.8*</string>

如果你在Android Studio中遇到问题,并且你已经安装了Android N,将Android渲染版本更改为旧版本,问题就会消失。


我在Mac OS X v10.9 (Mavericks)上的Eclipse中遇到了这个问题。我在Stack Overflow上尝试了很多答案…最后,在一整天之后,我*安装了一个新版本的Android SDK(并更新了Eclipse,菜单项目→属性→Android以使用新路径)*。

我不得不更新SDK,但只下拉那些我认为必要的更新,避免我不使用的api(如Wear和TV)。这就成功了。显然,我似乎在开发过程中损坏了我的SDK。

顺便说一句. .我确实在我的工作空间中看到了一个项目的错误重新出现,但它似乎与我没有使用的appcompat-7的导入有关。在rm-ing了那个项目之后,到目前为止还没有看到这个问题重新出现。


如果您使用的是Linux,并且安装了不同版本的Java,请使用以下命令:

sudo update-alternatives --config java

这将提供在系统上安装的Java版本之间切换的快速方法。通过选择Java 8,我将解决您的问题。


当你在更高版本的java(比如jdk 1.8)上编译你的项目,然后在低版本的java(比如jdk 1.7)上运行时,就会发生这种情况。

如果你的项目路径中有JRE-1.7库,

1.右键单击项目

2.转到属性

3.选择项目方面

4.在行中找到Java,如果使用JRE-1.7,则选择version(例如1.7)

5.单击Apply并运行项目。


只需访问http://java.com/en/download/并更新您的JRE版本


要解决这个问题,你所需要做的就是……确保你的Java版本在编译和运行时都是一样的。无论您使用什么工具或ide。


不支持的专业。次要版本52.0是当你试图运行一个用Java 1.8编译器编译的类到较低的JRE版本,例如JRE 1.7或JRE 1.6。修复此错误最简单的方法是安装最新的Java版本,即Java 8并运行您的程序。

阅读更多信息:http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html#ixzz4AVD4Evgv


如果JDK版本正确。另一个可能导致这个错误的原因是你的Android Studio版本太低了,而你的Gradle版本太高了。将IDE升级到新版本可能会有所帮助。


将您的Andorra版本升级到JDK 1.8。

这是一个版本不匹配,你的编译器正在寻找Java版本8,而你有Java版本7。

你可以在版本8中运行版本7中的应用构建,但你不能反过来做,因为当涉及到更高级别时,版本嵌入了更多的功能和增强,而不是以前的版本。

从此链接下载JDK版本

并为此设置JDK路径


我通过删除旧版本的JRE并安装JRE 8解决了这个问题。