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


当前回答

当从Eclipse运行Ant时,我收到了同样的错误消息,但这里提到的其他解决方案并没有解决我的问题。有趣的是,从Windows命令行运行Ant运行得很好,所以这必须是Eclipse中的配置问题。

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

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

其他回答

当我回到Java6并尝试运行以前用Java7编译的类时,出现了这个问题。对我起作用的是Preferences>java>compiler-->将符合性级别设置为1.6,并关键地“配置项目设置”。。

别担心,我解决了。

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

JRE 6->JDK 6

JRE 7->JDK 7

等等

我在Grails项目的SpringSourceTool(STS)IDE中也遇到了同样的问题。我检查了已安装的Java版本和项目Java版本为1.7。*。后来我发现在GGTS.ini文件中,Java版本设置为1.6:

解决方案:

-Dosgi.requiredJavaVersion=1.6更改为-Dosgi.requiredJavaVersion=1.7在-vmargs之前添加以下两行-虚拟机jdk1.7.0_21/jre/lib/amd64/server/libjvm.so

问题已解决。编码愉快。

首先,让我们正确掌握一些基本知识。。。

JRE是NetBeans/Eclipse/standalone中的一个组件,它将为您提供库、JVM、Java插件和Java web启动。注意,它不提供编译器或调试器。

JDK是JRE以及编译器和调试器的超集。

因此,当您将默认库作为JRE而不是JDK时,您将很容易导入内容,但它不会编译。

相反,将路径设置为JDK(我使用NetBeans,我使用NetBeans/etc/NetBeans.conf中的NetBeans.coff设置它们并更改路径)。

在Eclipse中,我只需进入菜单命令Window->Preferences->Java->Compiler,然后将“Compiler compliance level”设置为1.6。