Java将类视为包?

Java将类视为包?,java,Java,目录树: App |- src |- package S |- public class main.java |- public class U.java |- package C U.java树: public class U |- public static class I |- public static func test |- public static class O

目录树:

App
|- src
     |- package S
        |- public class main.java
        |- public class U.java
     |- package C
U.java树:

public class U
      |- public static class I
               |- public static func test
      |- public static class O
               |- public static func t
当我尝试访问
main.java
上的
U.I.test()
时。Javac给出了以下错误:
main.java:30:错误:包U不存在


java--版本:
openjdk 11.0.9.1 2020-11-04 openjdk运行时环境(构建11.0.9.1+1-Ubuntu-0ubuntu1.20.04)openjdk 64位服务器虚拟机(构建11.0.9.1+1-Ubuntu-0ubuntu1.20.04,混合模式,共享)


有什么想法吗?

您可以尝试下面的代码


  

    package S;
    
    public class main {
    
    public static void main(String args[]){
        U outer=new U();
        U.I innerI=outer.new I();
        innerI.test();
    }
    }

注意:您不能直接访问内部类方法。如果您想这样做,那么必须使内部类及其方法保持静态,然后从main方法调用,如下所示

U.I.test();

你能展示一些代码吗?@Sweeper我编辑了这个问题,以便你更好地理解我需要一组步骤,我可以执行这些步骤来重现错误“U包不存在”。现在,你给了我文件夹结构,但不是那些文件中的内容。main.java和U.java中有什么?@Sweeper
main.java
只有main函数
U.java
有上面的树,我尝试访问
U.I.test()
。其中,
I
是一个内部类,
test
是main.java中
class I
中的一个函数,而不是描述文件的内容,您应该使用这些文件包含的代码来回答问题。Eclipse IDE给了我:U.II类型的非法封闭实例规范已编辑了答案并为mainI类提供了完整的代码编辑了问题