Java 更新 281 后在 Windows 命令行中启动 Java 程序时出现问题

Java 更新 281 后在 Windows 命令行中启动 Java 程序时出现问题

更新后Java 8(更新 281)昨天(2021-02-15)我无法再使用单一文件启动在 Windows 命令行中。在此之前,我使用此功能没有任何问题,但现在我收到以下错误;

错误:无法找到或加载主类文件名.java

这次更新改变了什么或搞砸了什么?我非常喜欢单文件启动功能,如果再也不能像这样运行 Java 文件,我会非常难过。我该怎么做才能解决这个问题,有什么建议吗?

详细信息:我使用的是标准 Windows 10 命令行 (cmd.exe)。我没有更新 PATH 变量,因为我不知道该更改什么,说实话,以前它有效。以下是我目前在其中与 Java 相关的内容;C:\Program Files (x86)\Common Files\Oracle\Java\javapath C:\Program Files\Java\jdk-13.0.1\bin

答案1

看起来您在 Java13 二进制文件之前有 Oracle javapath(可能选择 Java8),这将阻止单个文件/编译启动工作java xyz.java

请参阅@DrMoishe Pippik 回答以获取有关编辑路径的有用信息,您可以尝试交换这些目录的顺序,以便 Java13 位于第一个 - 如果该目录存在:

C:\Program Files\Java\jdk-13.0.1\bin
C:\Program Files (x86)\Common Files\Oracle\Java\javapath

但请注意:这可能会导致第二个问题,因为如果其他应用程序依赖于 Java8 安装而不是 Java13,它们可能会失败。使用以下命令确认 CMD.EXE 中使用的默认值:

java -version

如果您想要多个 JDK 并且需要偏好特定 JDK 版本的 CMD.EXE,您可以使用以下命令将快捷方式添加到桌面:

%COMSPEC% /V /K C:\somepathtoyourbin\java8.cmd

%COMSPEC% /V /K C:\somepathtoyourbin\java13.cmd

java8.cmd...并添加文件以在或 中设置首选的 JAVAHOME java13.cmd。示例java13.cmd可能是:

@echo off
set "JAVAHOME=C:\Program Files\Java\jdk-13.0.1"
set "PATH=%JAVAHOME%\bin;%PATH%"

答案2

可能,环境变量路径至执行程序需要更新. 首先,检查执行程序和/或执行程序位于您的 PC 文件系统中。然后,打开 CMD 提示符,并输入

echo %java_home%

或者

where java

如果由于更新导致该路径不正确,最简单的方法纠正它在 Windows 中使用环境变量编辑器。

  • Windows,输入envi并选择Edit the system environment variables[您必须是管理员才能执行此操作。]。
  • 选择任何具有不正确的 java 路径的变量并进行编辑。
  • 按下Windows,输入envi并选择Edit environment variables for your account
  • 选择任何具有不正确的 java 路径的变量并进行编辑。

您可能需要重新启动才能使更改生效。

相关内容