我正在尝试使用Notepad++作为我的多功能工具编辑、运行、编译等。

我安装了JRE,并将路径变量设置为/bin目录。

当我在Notepad++中运行“Hello world”时,我收到以下消息:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

我认为这里的问题在于版本;Java的某些版本可能是旧的或太新的。

如何修复?我应该安装JDK,并将路径变量设置为JDK而不是JRE吗?JRE或JDK中的PATH变量有什么区别?


当前回答

如果在生成路径中添加了第二个项目,请确保它具有与第一个项目相同的编译器版本:财产->Java编译器->编译器符合性级别

其他回答

我什么都试过了。重新安装Tomcat终于奏效了。以下是我在重新安装之前检查的内容。

确保你的环境变量看起来像这样。

$ echo $JAVA_HOME
C:\Program Files\Java\jdk1.7.0_51\
$ echo $JRE_HOME
C:\Program Files\Java\jdk1.7.0_51\jre\bin

确保Eclipse正在使用与您设置JAVA_HOME相同的jre(如果未设置JAVA_HHOME,则将查看jre_HOME)。窗口>首选项>Java>已安装的JRE(选中的是默认项)

如果您对tomcat文件进行了任何更改,特别是catalina.bat或startup.bat,那么您可能会告诉tomcat查看不同于设置为java_HOME C:\Program files(x86)\Apache\Apache-tomcat-7.0.26\bin的java版本

在Eclipse的菜单窗口->首选项->Java->编译器中,还选中“配置项目特定设置”。

如果您仍然存在相同Java版本的错误:请尝试手动删除项目的构建文件夹。然后重新启动Eclipse。

您已经用JDK7编译了Java类,并且正在尝试在JDK6上运行相同的类。

在使用Ant脚本构建应用程序时,我也遇到过同样的问题。

我使用Eclipse进行应用程序开发,并在项目的构建财产中更改了编译器版本。但这对我不起作用。然后我发现我可以在Ant脚本中提供编译器版本。

我在Ant脚本编译Java文件的部分修改了它。

<target name="build-java" depends="prepare-build">
    <echo message="Compiling java files"/>
    <javac ....
           target="1.5"...
    </javac>
</target>

这对我解决不受支持的主要次要问题起到了作用。

最常见的问题是JAVA_HOME变量配置错误,如果您安装了多个,该变量应指向正确的JAVA开发工具包库。

要查找SDK Java文件夹的位置,请运行以下命令:

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

Debian/Ubuntu

要检查您安装了哪个java(openjdk),请通过以下方式进行检查:

dpkg -l "openjdk*" | grep ^i

or:

update-java-alternatives -l

要更改它,请使用:

update-alternatives --config java

如果需要,请使用sudo作为前缀。

选择另一个java版本。

或检查哪些可供安装:

apt-cache search ^openjdk

如果需要,请使用sudo作为前缀。

然后可以安装,例如:

apt-get install openjdk-7-jre

如果需要,请使用sudo作为前缀。

Fedora、Oracle Linux、Red Hat

通过以下方式安装/升级适当的软件包:

yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

java-1.7.0-openjdk包仅包含java Runtime Environment。如果您想开发Java程序,请安装Java-1.7.0-openjdk-devel包。

BSD

FreeBSDPorts集合中有一个名为openjdk7的openjdk7包,可能需要重新配置。

请参阅:OpenJDK wiki页面。

窗户

只需从Oracle站点安装适当的Java SE开发工具包库或安装

詹金斯

如果您遇到Jenkins的问题,请参阅:

JENKINS-30561-无法使用SSH启动代理

然而,选择正确版本的Java(更新版本)和更新选项应该是可行的。