当前位置: 首页 > 知识库问答 >
问题:

使用JDK 14在CMD中运行初学者程序的问题

鞠晋
2023-03-14

我目前正在使用Herbert Schildt的《Java初学者指南第八版》学习使用Java编程。我以前没有编程经验,现在遇到了一个错误。

我已经在我的C驱动器上安装了JDK14。经过很长一段时间的编译器问题,我找不到文件,我相信我已经解决了这个问题。但是现在遇到了以下情况;

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode)

C:\Users\*****>javac -version
javac 14.0.1

C:\Users\*****\mywork> java example
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: example has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

C:\Users\*****\mywork>

共有2个答案

蒋鸿文
2023-03-14

首先,从系统中卸载Java-8。然后,按如下方式编译并运行程序:

javac example.java
java example

但是,从Java-11开始,如果example.java文件有main的顶级类示例,甚至不需要使用javac编译,即直接运行如下:

java example.java

另一方面,您应该遵循Java命名约定,例如,类的示例应命名为示例。

汪玮
2023-03-14

检查环境变量PATH是否引用了Javabin目录。它的配置可能很奇怪,指的是Jdk8jdk14。。但我不确定那里发生了什么。出于某种奇怪的原因,您的javac运行的是Jdk14二进制文件,而java运行的是Jdk8二进制文件。

然后我会检查cmd中java的位置,这样,我就可以看到我的java.exe文件[s]的位置。

然后,您可能想更正Java安装,看看您的机器上是否安装了几个二进制文件(jdk14和jdk8),或者您想删除其中一个,或者——如果您想保留这两个——确保环境变量设置正确。

最后,您可能还会发现检查(对于寡妇)或(对于Linux)echs%JAVA_HOME%JAVA_HOME,以便查看JAVA_HOME引用的位置。

请注意,您的问题也可以归因于您的IDE。例如,如果您有一个使用内置Jdk的IntelliJ,可能需要重新配置它。

这个问题之所以存在,是因为您使用的是更高版本(14)的Java来编译文件,而您使用的是更低版本(8)的Java。

 类似资料:
  • 但我很快就发现自己陷入了困境:有页面、模型,也许数据库需要这种场景,似乎有很多事情要做。 我现在该怎么办?我是否需要与所有涉众讨论此方案?对于,我不认为他们真的关心实现,与其他开发人员讨论一下是不是一个好主意? 假设在我与其他一些开发人员讨论之后,我们同意将其拆分为几个小的部分。我们是否可以用格式使这些小部件成为“scenario”,就像我们刚才对cucumber-jvm所做的那样,或者我们是否可

  • 问题内容: 我知道数组运算符具有优先权。然后是二元算术运算符*,/,%。然后+和-优先级较低。 但是我很困惑在这个示例中哪个人会首先解决Java。并且如果我们有2个具有相同优先级的运算符,那么Java中将首先使用哪个运算符? 谢谢。 如果有人可以为我解决这个问题并向我部分解释。因为这总是使我困惑于考试。 问题答案: 如果运算符具有相同的优先级,则从左到右对其进行求值。 从教程: 当相同优先级的运算

  • 这是代码。 mongoclient.scala 数据库。斯卡拉 DBCollection。斯卡拉 所有程序都放在同一个包内。 我不使用IDE,所以我通过运行来编译这些文件 我的$CLASSPATH包括mongodb。jar文件,并指向com。缩放操作。我的应用程序目录中的mongo文件夹 现在,我打算通过运行scala quickTour来运行一个使用该包的程序。scala-cp$CLASSPAT

  • (我是java BTW的新手!)

  • 本教程的主要内容是介绍如何使用 jMonkeyEngine 进行游戏开发,旨在帮助初学者快速理解 jMonkeyEngine 中的核心概念。由于作者本人水品有限,文中难以避免出现谬误,如您在阅读过程中发现有不对的地方,请告知本人,我会尽快修正。 jME3 官方网站: 官网: http://jmonkeyengine.org/ 论坛: https://hub.jmonkeyengine.org Gi

  • 本文向大家介绍Java初学者常问的问题(推荐),包括了Java初学者常问的问题(推荐)的使用技巧和注意事项,需要的朋友参考一下 本文介绍一些Java初学者常问的问题,可以用%除以一个小数吗? a += b 和 a = a + b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么Java库不用随机pivot方式的快速排序? 基本数据类型 Q. 为什么 -0/3 结果是 0,而 -0.0