簡體   English   中英

在編譯過程中將Java文件保留在包中

[英]Keeping Java files in packages during compilation

在我的Java類中,我想輸出同一項目的另一個(未編譯)Java類的代碼。 這是包的結構:

main (package)
   files (package)
      SampleClass.java
      SampleFile.txt
CodeOutput.java

以及CodeOutput.java的代碼:

public class CodeOutput {
    public void run() {
        InputStream in = getClass().getResourceAsStream("files/SampleClass.java");
        BufferedReader stream = new BufferedReader(new InputStreamReader(in));

        try {
            System.out.println(stream.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new CodeOutput().run();
    }
}

我嘗試從files包中加載文件SampleClass.java並輸出其第一行。 但是,編譯后Java文件不會保留在軟件包中。 我還嘗試從構建路徑中排除文件(在文件的上下文菜單中:Build Path-> Exclude),因此代碼未編譯為.class文件,但Java文件仍未出現在包中。 它可以與SampleFile.txt一起正常工作,因此我確定它與項目/構建路徑設置有關。

有什么想法可以像對待包中的其他資源一樣對待Java文件嗎?

Eclipse將在src/main/java下編譯所有.java文件。 如果您不想編譯Java文件,請將其保存在/src/main/resources 另外,如果您使用Maven來構建源代碼,則可以輕松地在jar文件中包含源代碼。 這里的說明

在Java源代碼之外創建一個新目錄,並將該目錄添加到類路徑中。 您可以在該目錄下創建相同的包結構。 所以CodeOutput將是一個可編譯的Java類,但是添加到您的類路徑中新目錄下的所有文件都不會。

如果您不想這樣做,則無法以您現在嘗試訪問它們的方式訪問您的源文件。

暫無
暫無

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

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