在编译期间将Java文件保存在包中

时间:2014-06-05 10:49:16

标签: java eclipse packages buildpath

在我的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();
    }
}

我尝试从SampleClass.java包中加载文件files并输出其第一行。但是,编译后Java文件不会保留在包中。我还试图从构建路径中排除该文件(在文件的上下文菜单中:Build Path - > Exclude),因此代码不会编译为.class文件,但仍然Java文件没有出现在包中。它适用于SampleFile.txt,所以我确定它与项目/构建路径设置有关。

如何将Java文件视为包中的其他资源?

2 个答案:

答案 0 :(得分:0)

Eclipse将编译src/main/java下的所有.java文件。如果您不想编译java文件,请将其保存在/src/main/resources下。此外,如果您使用maven构建源代码,则可以轻松地在jar文件中包含源代码。 Instructions here

答案 1 :(得分:0)

在java源代码外创建一个新目录,并将该目录添加到类路径中。您可以在该目录下创建相同的包结构。所以CodeOutput是一个可编译的java类,但是在类路径的新目录下添加的所有文件都不会。

如果您不想这样做,则无法以您现在尝试访问它们的方式访问您的源文件。