簡體   English   中英

導入Java類文本編輯器

[英]Importing java classes text editor

最近,我開始使用文本編輯器(文本伴侶)代替Eclipse在Java中進行編程。 我在文件夾A(/ Users / kevincastro / Documents / Code / estructuras / clases)中有file1.java,在文件夾B(/ Users / kevincastro / Documents / Code / estructuras / datastructures)中有file2.java。 我想將file2.java導入到file1.java中,但是沒有顯示。 我試過了 :

import Users.kevincastro.Documents.Code.estructuras.datastructures.*; import datastructures.*; import Documents.Code.estructuras.datastructures.*;

他們都沒有工作。 我收到此錯誤“軟件包Users.kevincastro.Documents.Code.estructuras.datastructures不存在”

有什么幫助嗎? 謝謝

看來這里存在嚴重的誤解。 您似乎認為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 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等現代構建工具,這將使您的生活更加輕松。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM