2017-06-29 139 views
1

我正在一個web項目中工作,我遇到了文件問題(java.io.File)。問題是隻有當我作爲web應用程序(tomcat 7)運行時,如果我作爲Java應用程序運行,則問題不存在。文件路徑(JAVA EE)

當我實例化一個文件,new File("dir");,它的路徑變成C:// Windows/System32/dir,這樣,我什麼也做不了,也許因爲沒有Windows特權。

「我解決了這個問題」通過new File("C://Users/user/dir"),但我不喜歡這個解決方案。例如,我想自動執行此操作,獲取應用程序路徑。我在我的機器上編碼,在部署後......我不知道。

任何提示?

這是我遇到問題的一個jsf bean項目的一部分。我的視圖調用方法addFile()來保存我從我的視圖中收到的文件。它正在工作,但我必須像我之前說的那樣通過路徑,就像下面的代碼一樣。路徑去Windows目錄系統32

Bean.java 

@ManagedBean 
@ViewScoped 
public class Bean { 

    //ATTRIBUTES AND METHODS 

    public void addFile() { 

     File temporaryFile = new File("temporary"); 
     //... 
     //... 
     //... 

    } 
} 

對不起,我是巴西人。

+0

使用'createTempFile()'? https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.lang.String-java.lang.String-java.nio.file.attribute。 FileAttribute ...- – markspace

回答

0

您可以在網絡文件夾添加資源文件夾,然後添加文件,只要你想 我測試它從添加一些樣式(css)和javascript,並在jsf page.as中調用它們,例如,如果您在web /資源文件夾下創建名爲x的文件夾文件中的文件

new File("files/x"); 

希望答案可以幫助你。你可以告訴我是否有任何問題再次發生

+0

我在網絡/資源中創建了文件夾「文件」,並繼續出現相同的問題。 –

+0

'System.out.println(new File(「temp」)。getAbsolutePath());'OUT:「C:\ Windows \ System32 \ files \ x」 –

+0

不,我的意思是你應該創建文件夾在你的項目中存在的網站,這是你的家 –