![](/img/trans.png)
[英]How do I link jar packages together with *.java files during compilation using GCJ?
[英]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.