Java:打包类文件

标签 java java-package

我学会了Java包。不幸的是,我不明白为什么编译这些 .java 文件会导致编译错误。

我有以下3个java文件:Node.java , InvertedFile.java ,和Postings.java ,所有这些都在目录 /Users/tracking/Desktop/implementation/mytree 中在 Mac OS X 上。

package     mytree;
import      java.util.*;

// Node.java

public class Node 
{
    private int             label;          // unique integer identifier of this tree.
    private Node            parent; 
    private List<Integer>   leaves;         // the leaf value that this tree contains.
    private List<Node>      children;       // internal nodes.  


    public Node(int uniqueID)       
    {
        this.parent     =   null;
        this.label      =   uniqueID;
        this.children   =   new ArrayList<Node>();
        this.leaves     =   new ArrayList<Integer>();
    }

    public void add_leafnode(int data)
    {
        leaves.add(data);
    }

    public void add_internalnode(Node ChildNode)
    {
        children.add(ChildNode);
    }

    // print all leaves, print all children node identifier methods.

    public void print_all_leaves()
    {
        Iterator iter = leaves.iterator();
        while( iter.hasNext() )
        {
            Integer element = (Integer)iter.next();
            System.out.println(element);
        }
    }

    public List<Node> Get_children()
    {
        return children;
    }

}
<小时/>
package     mytree;
import      java.util.*;

// Postings.java

class Postings
{
    private     int             parentID;
    private     List<Node>      siblings;       // internal nodes.

    public Postings(int parentID, List<Node> siblings)
    {
        this.parentID   =   parentID;
        this.siblings   =   siblings;
    }

    public void print()
    {
        System.out.println(parentID);

        Iterator iter = siblings.iterator();

        while( iter.hasNext() )
        {
            Integer element = (Integer)iter.next();
            System.out.println(element);
        }
    }
}
<小时/>
package     mytree;
import      java.util.*;

// InvertedFile.java

class InvertedFile
{
    private HashMap IF;

    public InvertedFile()
    {
        IF  =   new HashMap();
    }

    public void Add_Posting(int InvertedList, Postings posting)
    {
        IF.put(InvertedList, posting);
    }

}

问题是java编译器不知道Node.java在哪里,实际上位于 ~/Desktop/implementation/mytree 中, 是。它向我报告的编译错误没有提供任何帮助。

Tracking:mytree tracking$ pwd
/Users/tracking/Desktop/implementation/mytree
Tracking:mytree tracking$ javac Node.java 
Tracking:mytree tracking$ javac Postings.java 
Postings.java:7: cannot find symbol
symbol  : class Node
location: class mytree.Postings
    private     List<Node>      siblings;       // internal nodes.
                     ^
Postings.java:9: cannot find symbol
symbol  : class Node
location: class mytree.Postings
    public Postings(int parentID, List<Node> siblings)
                                       ^
2 errors

此外,我尝试使用 javac -d . Postings.java 。我总是遇到同样的错误。有人能帮我解决这个问题吗?预先感谢您。

最佳答案

Java 期望在名为 mytree 的目录中找到源文件。从路径 /Users/tracking/Desktop/implementation

编译源代码
javac mytree/*.java 

关于Java:打包类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21458834/

相关文章:

java - Java 中是否可以同时导入多个包?

java - 为什么我不能导入 sun 包?

java - 为什么我们在 Java 中实例化一个新对象时必须键入两次类名?

同步、 volatile 和(标记)锁的 Java 内存模型交互

java - Catalina 上的 Aptana 3 错误 - 需要旧版 Java 运行时 6

java - 一个Java模块可以导出一个包,该包的名称是另一个模块中包的子包吗?

javac 添加类路径破坏了我的本地类编译

java - Camel 文件: Stop route when all files are processed

java - 在 Twitter4j 搜索上获取旧推文

java - 从另一个包访问类