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


当前回答

我也遇到过同样的情况,但以上任何提示都无济于事:)在我们的环境中,tomcat作为Windows上的服务运行。我们安装了Java 1.7并在此版本上设置了Java_HOME。当然,源代码是基于Java1.7构建的。尽管如此,tomcat表示它使用了以前版本的JVM。经过深入分析后,Windows上安装的Tomcat服务仍然保持JAVA_HOME的旧值指向JAVA 1.6。安装新的Tomcat服务后,所有问题都得到了解决。因此,结论是:当您更改java版本并将tomcat作为服务运行时,必须重新安装tomcat服务。

其他回答

如果使用Maven,请设置Java编译级别。打开命令行并为您的编译级别编写java-version:如果使用IntelliJ IDEA,请选择项目→ 文件→ 设置→ 生成执行部署→ 编译器→ Java编译器。然后将字节码更改为1.7,如下图所示:

将其添加到pom.xml文件中:

<project ....>
    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
</project>

其中1.7是您打算使用的Java版本。这将覆盖Maven编译器设置,因此从这里进行调试是很好的。

我也遇到过同样的问题,我在Linux中解决了这个问题。

检查您的$JAVA_HOME

需要JDK 1.8来编译/构建APK

安装Java JDK 1.8并更改Java_HOME

编辑~/.bashrc并将JDK 1.8路径添加为JAVA_HOME。

导出JAVA_HOME=/usr/lib/jvm/JAVA-8-oracle/jre/

和source~/.bashrc

关闭当前终端窗口/选项卡并运行$JAVA_HOME检查路径。

我在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

当我安装JDK1.7时,问题得到了解决。