java导入子目录

标签 java

我的目录结构是这样的:

folder
└───subfolder
    └───subsubfolder

我在 folder 中有一个 Main.java,而 Main.java 使用 subsubfolder 中的类。 这是我的做法:

import subfolder.*;
import subfolder.subsubfolder.*;

但是,当我执行 javac Main.java

时,我得到了以下消息
$ javac -g Main.java
Main.java:23: error: cannot access Node
      Node root = new Node();
      ^
  bad class file: ./subfolder/subsubfolder/Node.class
    class file contains wrong class: subsubfolder.Node
    Please remove or make sure it appears in the correct subdirectory of the classpath.
1 error

是不是我导入class文件的方式不对?

最佳答案

It says package subfolder

Node的封装声明应该说

package subfolder.subsubfolder;

为清楚起见提供示例:

folder/
        Your source root (typically called 'src')

folder/Main.java
        class Main { ... }  (no package declaration)

folder/subfolder

folder/subfolder/subsubfolder/Node.java
        package subfolder.subsubfolder;
        public class Node { ... }

如果您的 Main确实生活在一个包裹中(即如果你的情况类似于 src/folder/Main.java )那么你应该

cd src/folder
javac Main.java

你应该做的

cd src
javac folder/Main.java

关于java导入子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26432953/

相关文章:

java - SQLite - 检查时间是否超过一个月前

java - SWIG 生成的名称太长

java - Java swing 中单击的 JButton 的返回索引

java - OpenSaml 检索错误的 RoleDescriptor 对象

java - 用于在 hdfs 中列出目录的主机和端口

java - 如何从 Java 程序返回一些值给 shell?

c# - 从 C# 调用我自己的 Java 代码

java线程通知

java 盒子面具不工作

java - 何时创建/初始化准备好的语句