更新后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 路径的变量并进行编辑。
您可能需要重新启动才能使更改生效。