错误:找不到或加载主类 - 路径是正确的

时间:2015-03-07 13:14:09

标签: java cmd

正如您在标题中看到的那样,我收到错误:

错误:无法找到或加载主类Exercise14_11.java

我检查了我的路径,它应该正常工作,当我在CMD中键入java -version时,我得到了正确的输出。这应该表明系统路径设置正确。

我从与Exercise14_11.java所在文件夹相同的文件夹中打开CMD。

但是当我打瞌睡时:java Exercise14_11.java

我收到错误:

错误:无法找到或加载主类Exercise14_11.java

我之前已经阅读过这个错误的答案,但它确实没有帮助。

希望有人能告诉我什么是错的。

PS这是我试图运行的程序:

package hsleiden.webcat.exercise14_11;

import java.io.*;
import java.util.*;

public class Exercise14_11 {
    public static void main(String[] args) throws Exception {
        if (args.length != 2){
            System.out.println("Usage: java Exercise14_11 stringTeVerwijderen sourceFile");
        }

        File sourceFile = new File(args[1]);
        if(!sourceFile.exists()){
            System.out.println("Source file " + args[1] + " does not exist");
        }

        Scanner input = new Scanner(sourceFile);
        StringBuilder sb = new StringBuilder();

        while(input.hasNext()){
            String watVervangen = input.nextLine();
            String vervangen = watVervangen.replaceAll(args[0], "");
            sb.append("\r\n" + vervangen);
        }

        input.close();

        PrintWriter output = new PrintWriter(sourceFile);
        output.println(sb.toString());
        output.close();
    }
}

2 个答案:

答案 0 :(得分:2)

问题的根源似乎是您的类属于包hsleiden.webcat.exercise14_11,并且您正在使用它属于默认包。如果您成功编译它,.class文件应位于目录C:\...\DDD\hsleiden\webcat\exercise14_11内,并命名为Exercise14_11.class。要运行它,

  1. 将目录C:\...\DDD添加到类路径,或
  2. 将目录.添加到类路径,然后cd到C:\...\DDD
  3. 此外,java命令需要完整的类名,因此您应该使用:

    java hsleiden.webcat.exercise14_11.Exercise14_11
    

    请注意,编译时使用.java文件扩展名是正确的,但在运行时需要使用类名。这些文件没有文件扩展名,因此请勿添加.java.class

    例如,如果.class文件的完整路径为C:\eclipse\IOPR2\Exercise14_11\bin\hsleiden\webcat\exercise14_11\Exercise14_11.class,那么您需要运行它:

    java  -cp C:\eclipse\IOPR2\Exercise14_11\bin  hsleiden.webcat.exercise14_11.Exercise14_11
    

答案 1 :(得分:1)

您必须编译该类,然后运行它。你的命令错误

javac Exercise14_11.java
java  Exercise14_11
  • javac命令获取源文件并生成已编译的类
  • java命令使用带有main方法的编译类来执行