为什么可以';我不能再从命令行运行java了吗?

为什么可以';我不能再从命令行运行java了吗?,java,cmd,Java,Cmd,我已经使用相同的过程从命令行运行java程序5年多了: javac Program.java java程序 这突然不起作用了。编译是可行的,但是当我试图运行程序时,我得到一个错误,说找不到该类 但是,现在当我键入此命令时,它会起作用: javac Program.java java程序.java 这很好,但是当我有一个扩展了另一个类的类时,却找不到它 下面是它在命令行上的外观: C:\Drive\Java>javac Program.Java C:\Drive\Java>Java程序 错误:无法

我已经使用相同的过程从命令行运行java程序5年多了:

  • javac Program.java

  • java程序

  • 这突然不起作用了。编译是可行的,但是当我试图运行程序时,我得到一个错误,说找不到该类

    但是,现在当我键入此命令时,它会起作用:

  • javac Program.java

  • java程序.java

  • 这很好,但是当我有一个扩展了另一个类的类时,却找不到它

    下面是它在命令行上的外观:

    C:\Drive\Java>javac Program.Java

    C:\Drive\Java>Java程序

    错误:无法找到或加载主类程序 原因:java.lang.ClassNotFoundException:程序

    C:\Drive\Java>Java Program.Java 你好,世界


    我能做些什么来引起这种变化吗?我注意到它是在昨天windows更新后开始出现的。

    我建议您检查您的计算机系统是否与jdk版本兼容。
    和支持?x86 x64

    类名应与文件名完全相同,请粘贴代码或自行检查

    我能够解决这个问题。问题是,我添加了一个CLASSPATH环境变量,该变量指向我的javabin文件夹,这导致了该行为。我删除了它,问题就解决了。

    当您从
    C:/Drive/Java
    运行
    dir
    时,是否看到
    Program.class
    文件?为了让Java运行(以及所有其他依赖项,假设它们存在的话),您需要它的存在。Program.class文件在那里。你在Program.java中使用的包是什么?我不完全确定这意味着什么。为了使事情尽可能简单,整个程序就是这样的:公共类程序{publicstaticvoidmain(String[]args){System.out.println(“helloworld”);}}所以代码中没有包声明?