【问题标题】:What does "Illegal Class Literal" mean?“非法类文字”是什么意思?
【发布时间】:2014-10-02 07:10:23
【问题描述】:

刚开始使用 DrJava,当我尝试运行我的代码时遇到 Illegal Class Literal 错误。我的代码可以编译,直到运行时才会出现问题。当我在交互终端中运行“java Percolation(5)”时,即使是以下内容也会导致错误。

public class Percolation {
    public Percolation(int N)  {
        System.out.println(N);
    }    
}

我在 Google 上找不到任何东西;有什么想法吗?我觉得我错过了一些愚蠢的东西。谢谢!

【问题讨论】:

  • 你有main方法吗?
  • 实际上java Percolation(5) 永远不会工作,因为你不能有一个名为Percolation(5) 的java 类。

标签: java ide drjava


【解决方案1】:

要运行您的程序,您必须调用一个起始方法或主方法。此方法为public static void,并且它必须采用 VarArgs 或数组作为参数:

public static void main (String[] args) {
    // in here, you can do stuff like calling other functions, or creating objects

    // no checks, just demo how to use the args:
    Perlocation p = new Perlocation(Integer.parseInt(args[0]));
}

然后你可以通过

调用你的程序
java Percolation 5

【讨论】:

  • 谨慎使用 Integer#decode。它用前导零做有趣的事情。我会使用 Integer#valueOf 或 Integer#parseInt
  • @Thilo 感谢您的提示,我不知道! :)
  • 太棒了,谢谢。过去我在课程中使用过 BlueJ,它把事情搞砸了,我想隐藏了主要方法。因此,我以前从未遇到过 main 方法。谢谢。
【解决方案2】:

您需要在您的类中使用main 方法才能运行它。 http://docs.oracle.com/javase/tutorial/getStarted/application/

然后如果你想传递一个参数给主方法,你通过调用它

java Percolation 5

不是

java Percolation(5)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 2017-01-18
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多