2011-12-30 24 views
0
沒有運行

我的Java小程序的數據庫程序讀取從當前目錄像 FileInputStream fstream = new FileInputStream("details.txt");文件讀取的小程序在瀏覽器

文件當我通過appletviewer中運行,它的工作原理,但通過瀏覽器,它不會顯示任何輸出。 錯誤:

Error: details.txt (The system cannot find the file specified)

我把這個文件在同一目錄下。

我的小程序標籤:

<applet code="hack.database.MyApplet.class" archive="MyApplet.jar, ojdbc14.jar" height="800" width="1000"> </applet>

+1

請告訴我們你的意思是「在同一個目錄下」。 (我認爲你的答案應該會引導你回答這個問題。) – 2011-12-30 12:52:12

+0

存在所有類和jar文件的文件夾。 – 2011-12-30 12:53:02

回答

2

當然,你不能使用這個FileInputStreamFileInputStream是閱讀文件,你不能在一個未簽名的Applet訪問本地文件系統。您的資源可通過網絡獲得,而不是作爲文件。如果您的小程序的簽名爲,那麼您引用的代碼將在其文件系統中的當前工作目錄目錄中查找「details.txt」文件,而不一定是包含類文件的目錄。

您可以從罐子Applet類是使用Class#getResource獲得URL可以打開,或者使用Class#getResourceAsStream做這一切在一個內加載資源。

InputStream is = getClass().getResourceAsStream("details.txt"); 

我知道,工作的:因此,例如,一個applet在實例方法中的代碼將在同一目錄中的JAR作爲小程序class文件打開InputStream的「details.txt」文件jar中的資源。無論它是否適用於同一代碼庫中的其他資源,我都不能說,我總是將所有內容捆綁到jar中。另見this related question(及其答案)。

所以有兩個步驟:將文件放在jar文件中,並使用上面的代碼檢索其內容。

1

你必須使用java.net.URLjava.net.URLConnection類的方法來獲得InputStream。未簽名的Applets無法訪問客戶端資源,例如本地文件系統。欲瞭解更多信息,請閱讀 - What Applets Can and Cannot Do

+0

我的小程序已經簽名。它可以通過appletviewer運行。 – 2011-12-30 13:07:09

相關問題