Java 为什么在运行以下代码时收到“找不到或加载主类”?

Java 为什么在运行以下代码时收到“找不到或加载主类”?,java,classpath,Java,Classpath,我有以下目录结构: C:\CheckinProject\sources\main\EmailProcessor.java<br/> \compile-and-run.bat<br/> \classes\main\EmailProcessor.class 文件compile-and-run.bat包含以下内容: package main; public class EmailProces

我有以下目录结构:

C:\CheckinProject\sources\main\EmailProcessor.java<br/>
                         \compile-and-run.bat<br/>
                 \classes\main\EmailProcessor.class
文件compile-and-run.bat包含以下内容:

package main;

public class EmailProcessor {
    public static void main(String args[]) {
        System.out.println();
    }
}
javac -d ..\classes main\EmailProcessor.java 
java -cp ..\classes ..\classes\main\EmailProcessor
当我运行compile-and-run.bat时,出现以下错误:

Error: Could not find or load main class ..\classes\main\EmailProcessor

为什么它不能找到或加载我的主类???

您正在指定
。\classes\EmailProcessor
,就好像Java想要文件名的词干一样。它不需要-它需要一个完全限定的类名。因此,这应该是可行的:

java -cp ..\classes main.EmailProcessor

您正在指定
。\classes\EmailProcessor
,就好像Java需要文件名的词干一样。它不需要-它需要一个完全限定的类名。因此,这应该是可行的:

java -cp ..\classes main.EmailProcessor

。\classes\EmailProcessor
不是您的类的名称。类的名称为
main.EmailProcessor
java
可执行文件接受限定的类名作为其参数。

。\classes\EmailProcessor
不是类的名称。类的名称为
main.EmailProcessor
java
可执行文件接受限定类名作为其参数。

您需要指定要使用其java名称而不是文件系统名称运行的类。例如,
java-cp..\classes main.EmailProcessor

您需要指定要使用其java名称而不是文件系统名称运行的类。也就是说,
java-cp..\classes main.EmailProcessor

它是String[]args而不是String[]args

它是String[]args而不是String[]args

我现在觉得有点不好意思。这起作用了。谢谢大家:-)我现在觉得有点不好意思。这起作用了。谢谢大家:-)