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

时间:2012-12-04 18:55:48

标签: java classpath

我有以下目录结构:

C:\CheckinProject\sources\main\EmailProcessor.java<br/>
                         \compile-and-run.bat<br/>
                 \classes\main\EmailProcessor.class

文件EmailProcessor.java包含:

package main;

public class EmailProcessor {
    public static void main(String args[]) {
        System.out.println();
    }
}

文件compile-and-run.bat包含:

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

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

4 个答案:

答案 0 :(得分:6)

您指定..\classes\EmailProcessor,就好像Java需要文件名的词干。它没有 - 它想要一个完全限定的名称。所以这应该有效:

java -cp ..\classes main.EmailProcessor

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:-2)

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