2012-02-08 39 views
0

我有一個桌面應用程序,實現Serializable類,但現在我正在翻譯它與servlet的Web應用程序,我使用Netbeans這項工作,我有以下代碼:哪裏把一個序列化的文件對象在項目netbeans

InputStream input = ClassLoader.getSystemResourceAsStream(file_input); 

哪裏file_input是從之前序列化對象的字節碼f​​yle,我不知道我應該把這個文件,因爲在桌面應用程序我把它放在同一目錄在那裏我有我的班。

(我有這個文件,我不需要創建它)。

回答

0

首先,請勿在Java EE Web應用程序中使用ClassLoader#getSystemResourceAsStream()。請改用ClassLoader#getResourceAsStream()。我還會在一個Java SE桌面應用程序中使用ClassLoader#getSystemResourceAsStream()的大問號,肯定它是否打算分發,但除此之外。

ClassLoader最終從類路徑加載資源。所以你所要做的就是確保文件被放置在默認由webapp的運行時類路徑覆蓋的路徑之一中,以便通過服務器將文件的新路徑添加到webapp的運行時類路徑具體的配置設置,如Tomcat的/conf/catalina.propertiesshared.loader屬性。

webapp的運行時類路徑覆蓋的默認路徑之一是WAR的/WEB-INF/classes文件夾。從IDE項目的角度來看,只需將文件放在「Java Source」(src)文件夾的根文件夾中,那裏有所有Java包和類。 IDE將注意,它最終會在構建的WAR文件的/WEB-INF/classes中結束。

我順便還是假定你是而不是從webapp裏面創建文件,就像你明確告訴的那樣。那不行。如果你的實際上也需要寫入權限,那麼你將需要一個絕對的磁盤文件系統路徑。例如,您可以通過將其提供爲VM參數或環境變量來進行配置。

相關問題