我正在尝试使用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变量有什么区别?


当前回答

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

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

其他回答

别担心,我解决了。

这实际上很简单——您需要使用相同的版本安装JRE和JDK。

JRE 6->JDK 6

JRE 7->JDK 7

等等

您使用了更高版本的JDK来编译并尝试从更低版本的JDK/JJRE运行。

要检查此项,请参阅版本信息:

javac -version

java -version

它们会有所不同,javac的版本号会更高。

要解决这个问题,请使用JDK版本的java运行,或者如果您有一个新的JRE/JDK也可以运行。

javac将告诉您位置,例如/usr/bin/javac。只需使用/usr/bin/java<program>直接运行。

或者,可以将环境变量设置为永久解决方案。

我通过检查部署程序集中是否部署了Maven依赖项,为我解决了这个问题。就我而言,他们不是。

添加它解决了问题。

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

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

对我来说,我在com/sun/javadoc/Doclet类上遇到了这个错误。经过一番挖掘,我发现我无意中将tools.jar从Java8复制到了Java7文件夹中。

找到Java7的tools.jar并将其放回文件夹解决了我的问题。所以有些事情要尝试。