我正在尝试使用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构建路径。单击“添加库”。单击JRE系统库上的下一步。如果默认情况下未选择,请选择所需的选项。单击“完成”。

你完了!

其他回答

最常见的问题是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(更新版本)和更新选项应该是可行的。

如果有人在使用Gradle,请将其放入build.Gradle

java {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

在上述情况下,我们告诉编译器使字节码与版本java7(我希望在其中运行类的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运行Ant时,我收到了同样的错误消息,但这里提到的其他解决方案并没有解决我的问题。有趣的是,从Windows命令行运行Ant运行得很好,所以这必须是Eclipse中的配置问题。

事实证明,在Eclipse下,您可以指定Ant应该运行的环境,并将其设置为JRE而不是JDK。

转到:运行->外部工具->外部工具配置。。。为项目选择Ant build.xml(如果有多个项目)激活选项卡“JRE”这里选择了“单独的JRE:jre6”。当我将其从1.6或1.7系列更改为JDK时,错误消失了。

如您所知,为jdk(Java开发工具包)bin目录设置环境变量Java_home总是一个很好的做法。

看看上面的问题,JRE运行时环境似乎正在寻找一个与JDk的Superset库不兼容的类。我建议直接从Oracle下载源获得完整的JDK和JRE或Jboss包(如果需要),以避免任何此类问题。