[英]how to get full path of the current file including the src file in 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.