我正在尝试使用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“类”文件,该文件是用比您安装的Java版本更高的版本编译的。

例如,您的.class文件可能是为JDK7编译的,您正在尝试使用JDK6运行它。

因此,解决方案是:

升级Java运行时或如果有源代码,请使用本地Java编译器(如果有)重新编译类。javac文件名.java

对于开发人员来说,如果另一个开发人员签入了.class文件,并且他们得到了比您更新的java版本,则可能会发生这种情况!

我在Mac上也遇到过类似的情况,以下过程对我有效:

在终端中,键入

vi ~/.profile

然后在文件中添加此行,并保存

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home

其中版本是计算机上的版本,例如1.7.0_25。

退出编辑器,然后键入以下命令使其生效

source ~/.profile 

然后键入java-version以检查结果

java -version 

什么是.profile文件?

.profile文件是隐藏文件。这是一个可选文件,告诉系统当其配置文件所在的用户登录时要运行哪些命令。例如,如果我的用户名是bruno,并且/Users/bruno/中有一个.profile文件,则其所有内容都将在登录过程中执行。

资料来源:http://computers.tutsplus.com/tutorials/speed-up-your-terminal-workflow-with-command-aliases-and-profile--mac-30515

您可以用Java7编译一些JAR库,而Java运行时只有Java6。这可能发生在一些新的图书馆中。

单击项目中的“财产”。转到Java构建路径。单击“添加库”。单击JRE系统库上的下一步。如果默认情况下未选择,请选择所需的选项。单击“完成”。

你完了!

噢,Mac OS X我可以通过设置JAVA_HOME变量来解决这个问题:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home