我的java程序编译,但它没有运行,因为它无法找到或加载主类文件

时间:2014-01-18 23:49:10

标签: java

我正在尝试编写一个程序,用于检查{},[],()等符号是否正确放置在String中。我的问题是我已经设法使程序编译但是当我尝试运行它时,它给了我以下错误:
错误:无法找到或加载主类P.java 我不确定会出现什么问题,因为我只编程了大约两个月。任何有关此事的帮助将不胜感激。这是我的代码:

import java.util.*;

public class P {
    public static void main(String[] args) {

        char[] opening = { '(', '{', '[' };
        char[] closing = { ')', '}', ']' };
        String mark;
        char marks;
        Scanner terminalInput = new Scanner(System.in);
        Stack<String> myStack = new Stack<>();
        String sentence = terminalInput.nextLine();
        char[] letters = sentence.toCharArray();

        boolean yes = true;
        for (int i = 0; i < letters.length; i++) {
            for (int a = 0; a < 6; a++) {
                if (letters[i] == opening[a]) {
                    mark = Character.toString(opening[a]);
                    myStack.push(mark);
                }

                if (letters[i] == closing[a]) {
                    mark = myStack.peek();
                    marks = mark.charAt(0);
                    if (marks != opening[a]) {
                        yes = false;
                        System.out.println(yes);

                    } else
                        myStack.pop();
                }
            }
        }
        System.out.println(yes);
    }
}

2 个答案:

答案 0 :(得分:4)

“P.java”是源代码文件的名称。该类的名称只是P,因此这是您在尝试运行时应该使用的内容:

java P

答案 1 :(得分:0)

我在Windows中的命令提示符下运行程序时遇到了同样的问题。事实证明,CLASSPATH不应包含空格。我的CLASSPATH最初是C:\ MyFolder \ Java progs。它将在执行时编译:

  

javac helloworld.java

但即使我的CLASSPATH环境变量设置为C:\ MyFolder \ Java progs,也不会创建类文件。一旦我将文件夹的名称更改为“Javaprogs”,它就开始顺利运行。 .class文件已创建并

  

java helloworld

成功运作。希望这会有所帮助。