簡體   English   中英

如何獲取包含/ src /的java文件的路徑

[英]How to get path of java files including /src/

im正在從事一個可以在PC中編譯/運行現有Java文件的項目。

大多數代碼都能很好地運行,但是我在獲取Java文件的路徑時遇到了問題。

這是有問題的代碼

void uploadJ() {    
    System.out.print("Insert File name : "); //ex)HelloWorld.java
    FileName = sc.next(); 
    }

void Compile(){ 
    String s = null;
    File file = new File(FileName);
    String path = file.getAbsolutePath();

    try {
        Process oProcess = new ProcessBuilder("javac", path).start();
        BufferedReader stdError = new BufferedReader(
            new InputStreamReader(oProcess.getErrorStream()));
        while ((s = stdError.readLine()) != null) {
                FileWriter fw = new FileWriter(E_file, true);
                fw.write(s);
                fw.flush();
                fw.close();
        } 
    } catch...
}

例如,當我將HelloWorld.java作為文件名時,

HelloWorld.java的絕對路徑應為C:\\ Users \\ user \\ eclipse-workspace \\ TermProject \\ src \\ HelloWorld.java

但是結果是C:\\ Users \\ user \\ eclipse-workspace \\ TermProject \\ HelloWorld.java

它錯過了/ src /,因此總是以javac:文件未找到錯誤結尾

編譯完應用程序后,將沒有src目錄。 該工作目錄也可以設置為任何內容。 您也不能保證您要查找的文件是實際文件,在jar文件的上下文中不是。

但是,您可以從類路徑加載文件。 您可以使用Class#getResourceAsStream(String)

查找具有給定名稱的資源。 搜索與給定類關聯的資源的規則由該類的定義類加載器實現。

查找文件可以通過調用this.getClass().getResourceAsStream("/" + FileName) ,並帶有/導致從資源根目錄進行搜索。

要將其與javac一起使用,您必須創建一個臨時文件,並使用從getResourceAsStream獲得的數據流填充該文件。

暫無
暫無

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

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