【问题标题】:Java cannot import from child of parent directoryJava 无法从父目录的子目录导入
【发布时间】:2016-12-04 21:49:59
【问题描述】:

好的,所以我正在制作一个 Java 程序,并且我有以下目录设置: - 我的程序
|__ 引擎
|______ 实用程序
|__________ 重要.java
|
|__ 源
|______ 主要
|__________ MainApp.java

在 MainApp.java 我有一个 import 语句:

import Engine.utils.Important;

我也试过

import utils.Important;

无济于事。 我错过了什么愚蠢的东西吗?为什么我无法从 MainApp 导入重要信息?

我正在运行 Windows 10,cmd java -version 返回以下内容:

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

谢谢

快速编辑:也尝试过 MyProgramme.Engine.utils.Important; 第二次编辑:我得到的错误是 java: package Engine does not exist

【问题讨论】:

  • 为什么不使用 IDE?无论如何,从你的结构引擎是一个不同的项目。这应该是源中的不同包,或者应该作为依赖项导入。
  • 我忘了说一切都在 MyProgramme 项目下。我正在使用 IntelliJ IDE。

标签: java packages


【解决方案1】:

由于您只是初学者,请将 utils 文件夹移动到 src。 然后将其用作import utils.Smth;,您应该就可以了。

还可以考虑使用一些开发编辑器。例如 IntelliJ、Eclipse 或 NetBeans。 导入项目,你会没事的:) 手动使用类路径对您来说不是一个好主意。

您现在可能希望项目中的模块化,但您不知道如何很好地使用包。仔细阅读。

如果您已经了解所有这些内容,则应该阅读有关 gradle 或 maven 的信息。简而言之,这些工具将多个项目合二为一。但是在项目的早期阶段,这将是一个重大的过度工程,并导致大量的开发开销。

【讨论】:

    【解决方案2】:

    只要您的类路径设置正确,您的第一个 (import Engine.utils.Important;) 就可以了。您需要确保类路径包含您的 Engine 目录的父目录和您的 main 目录的父目录(假设您的 Main 类在包 main 中,而不是 src.main,这很奇怪) .

    *nix 示例:

    如果层次结构的顶层是 ~/temp,请确保您的类路径包含 ~/temp 和 ~/temp/src。例如,这很好用:

    javac -cp ~/temp:~/temp/src src/main/Main.java

    Windows 示例:

    或者在 Windows 上,如果您假设您的基本目录是 C:\Temp,那么:

    javac -cp C:\temp;C:\temp\src src\main\Main.java

    假设

    以上假设Important.java有

    package Engine.utils;
    

    而Main.java 有

    package main;
    

    旁注:Java 中压倒性的约定是包名全部小写。所以engine 而不是Engine。

    【讨论】:

      猜你喜欢
      • 2015-07-23
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2013-03-22
      • 2019-11-10
      相关资源
      最近更新 更多