java - 导入java类文本编辑器

标签 java import path text-editor textmate

最近我开始使用文本编辑器(text mate)而不是 eclipse 来用 Java 编程。我在文件夹 A(/Users/kevincastro/Documents/Code/estructuras/clases) 中拥有 file1.java,在文件夹 B(/Users/kevincastro/Documents/Code/estructuras/datastructs) 中拥有 file2.java。我想将 file2.java 导入到 file1.java 但它没有字。我已经尝试过:

导入Users.kevincastro.Documents.Code.estructuras.datastructs.*; 导入数据结构。*; 导入 Documents.Code.estructuras.datastructs.*;

它们都不起作用。我收到此错误“包 Users.kevincastro.Documents.Code.estructuras.datastructs 不存在”

有什么帮助吗?谢谢

最佳答案

看来这里有一个严重的误会。您似乎认为 import 语句实际上是“导入文件”或类似的东西。它不做任何类似的事情。 import 语句的存在只是为了让您不必在每次使用类时都编写类的完全限定名称。采取以下代码:

package a
import b.Bar

public class Foo {
    private Bar bar = new Bar();
    public static void main(String [] args) {
        System.out.println(bar);
    }
}

这和写完全一样:

package a

public class Foo {
    private b.Bar bar = new b.Bar();
    public static void main(String [] args) {
        System.out.println(bar);
    }
}

但是它并没有说明b.Bar所在文件的位置!因此,您的文本编辑器或源代码中没有可导入的文件。您唯一知道的是 b.Bar 必须位于名为 b 的文件夹中 - 但该文件夹可以位于任何位置。

  1. 当您编译a.Foo时,javac(编译器)必须同时编译b.Bar,或者可以访问类路径中的b.Bar。假设您的源代码位于/SomeDir/src/a/Foo.java 和/SomeDir/src/b/Bar.java 中,并且编译到/SomeDir/target 。示例:

    • 同时编译这两个类(事实上,/SomeDir/src 中的所有 java 源文件):javac -d/SomeDir/target/SomeDir/src/**/*.java

    • 编译 Foo,引用 Bar(已编译为/SomeOtherDir/b/Bar.class): javac -d/SomeDir/target -classpath/SomeOtherDir/SomeDir/src/a/Foo.java

    • 或者 Bar.class 可能位于 jar 文件等中

  2. 当您运行 Foo 时,Bar 必须位于类路径中,以便类加载器可以找到它。如果要运行/SomeDir/a/Foo.class,并且Bar位于/SomeOtherDir/b/Bar.class中: java -classpath "/SomeDir:/SomeOtherDir"a.Foo

  3. 一旦您测试了所有这些,您应该准备好爱上现代构建工具,例如 Maven 或 Gradle,这将使您的生活变得更加轻松。

关于java - 导入java类文本编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25694544/

相关文章:

java - 为什么是 myArrayList.size();产生不正确/巨大的数字?

swift - 无法将 firebase 导入到我的 swift 项目中

protobuf中不同包文件的导入和使用?

bash - 我在ubuntu中更改了PATH,但它不起作用

java - 如何在没有 IntelliJ 模板的情况下创建命令行应用程序?

第二台显示器上全屏独占模式下的 Java 框架

python - 行未添加到数据库中

java - JAVA_HOME 环境变量有什么意义

使用Unix解析和打印$ PATH

java - 如何在 spring 中的对象内包含的列表上创建 select 语句?