这些类属于相同的pkg。它们在目录中,即pkg的名称。

  • 通常,类如何在同一pkg中互相访问?

  • 错误
    javac PackTest.java
    PackTest.java:8: cannot find symbol
    symbol  : class PriTest
    location: class pacc.PackTest
      System.out.println(new PriTest().getSaluto());
                             ^
    1 error
    

    PKG pacc中的类
    $ cat PackTest.java
    package pacc;
    import java.io.*;
    
    public class PackTest
    {
        public static void main(String[] args)
        {
            System.out.println(new PriTest().getSaluto());
        }
    }
    $ cat PriTest.java
    package pacc;
    
    public class PriTest
    {
        public PriTest(){}
        private String saluto="SALUTO FROM PriTest";
        public String getSaluto(){return saluto;}
    }
    

    dirt 名称的 PKG
    $  find .. -type d -name "pacc"
    ../pacc
    $ ls ../pacc
    makefile  PackTest.java  PriTest.java
    $ ls
    makefile  PackTest.java  PriTest.java
    

    解决了!
    $ cat makefile
    p:
        javac ./pacc/PackTest.java
        java pacc/PackTest
    $ make p
    javac ./pacc/PackTest.java
    java pacc/PackTest
    SALUTO FROM PriTest
    

    最佳答案

    也许(所以请不要杀死我)这是一个解决方案:

    在终端中,转到Java项目的根目录(因此,默认情况下,默认包为pacc文件夹的父目录)。
    然后输入:javac pacc.PackTest.java
    我不手动使用编译器。我的IDE可以为我工作。

    07-27 13:59