提问者:小点点

我的内部类主函数不执行,即使我尝试javaoutter$内


你好,我在内部类中执行main方法时遇到了困难。外部类main方法执行得很好,即使其他类main方法也执行得很好。但是当我试图执行java外部$内部时,它执行的是外部类的main方法,而不是内部类。以下是代码:

class outer{
    public static void main(String[] args) {
        System.out.println("Outer class");
    }
    class inner{
        public static void main(String[] args) {
            System.out.println("Inner class");   
        }
    }
}
class c{
    public static void main(String[] args) {
        System.out.println("Another class");
    }
}
Output:
PS C:\Users\MY_PROJECTS> java outer
Outer class
PS C:\Users\MY_PROJECTS> java outer$inner
Outer class
PS C:\Users\MY_PROJECTS> java c
Another class

所有类文件都在同一个目录中生成。同样让我恼火的是这个图像,没有在内部类中运行或调试main方法的选项。

所以我想知道为什么会这样。


共1个答案

匿名用户

我有一个非法的静态声明在内部类Outer。内部错误与您的程序。

我不得不把它改成:

class Outer{
  public static void main(String[] args) {
     System.out.println("OUTER");
  }
  static class Inner{
    public static void main(String[] args) {
       System.out.println("INNER");
    }
  }
}

请参阅静态类。

然后,我可以运行INNER类:

PS D:\> java 'Outer$Inner'
INNER

注意引号。如果省略它们,Powershell将运行java外部并使用$内部做其他事情(我不太了解Powershell)。

常见用法使用大写写类名,如本例所示。