2014-06-12 16 views
2

我有一個在Java over Play 2.2框架中開發的Web應用程序。 當我在本地運行應用程序時,我的一個java類正在訪問項目文件夾中的一些文件,運行良好。在部署的Java類中無法訪問的文件,但在播放2.2框架中開發的Web應用程序中本地工作的框架

創建jar文件並運行它後,java代碼無法讀取這些文件。這些文件位於公共文件夾中,並確保打包在jar中。

還有其他文件是我從HTML引用的,它們可以訪問,但是java類不能訪問這些文件。

請幫我解決這個問題。

回答

1

我想你是試圖訪問一個jar文件。如果我理解你的問題。請糾正我,如果我錯了

你可以使用這樣的事情:

InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile); 

如果test.txt的是你的JAR文件的根目錄,你會使用:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("test.txt"); 

注意:文件和java類需要位於同一個jar文件中。

+0

最初文件在項目文件夾中,而不是在jar中。一旦我創建了一個項目包在不同的機器上運行它,我使用[_play dist_]命令創建了一個jar。問題出在打包應用程序後,java類無法通過HTML訪問文件。希望我清楚。 – AnkitG

+0

這是文件。但是你正在創建一個jar,然後試圖訪問它,所以當從項目文件夾中執行正常文件讀取將工作,但如果它在jar下,那麼你必須像上面那樣做。 –

1

在我的情況下,代碼一切正常,罐子一側的目錄結構是我錯過了零件的地方。

我必須保持目錄中的文件/文件夾與@APaul所說的jar文件相同,我試過了,但沒有奏效,因爲我正在使用批處理來運行jar。我的文件應該在包含批處理文件的文件夾中。我的錯!

反正謝謝@APaul。

相關問題