2016-04-26 60 views
0

我開始使用一個將取代現有小程序的小程序。之前從未開發過一個applet,我想我會採用流行的HelloWorld示例。我可以通過幾種不同的方式運行它:在appletviewer中,如果我將包含HelloWorld類的JAR文件放在與HTML相同的目錄(即http://localhost:8080/myApp)中,也可以在瀏覽器中運行。當我把JAR放在一個名爲HelloWorld的目錄下面的myApp目錄下,並將<applet>標籤中的codebase參數指定爲HelloWorld時,我也得到了它的工作。但是,當我嘗試指定WEB-INF目錄(如classeslib)時,我得到一個ClassNotFoundException。我究竟做錯了什麼?Java小程序ClassNotFoundException與代碼庫

+0

1)爲什麼要編寫一個小程序?如果是由於老師指定它,請將它們轉介給[爲什麼CS教師應該**停止**教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop教學-java的小應用程序/)。 2)請參閱[不支持Java插件的支持](http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/)和[轉移到無插件Web]( https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free)。 –

+0

我希望它是爲一個類的任務:)這是一個遺留應用程序... –

+0

...但我會調查使用Java Web Start的可能性,而不是(我將使用很多第三方商業軟件,所以我必須看看有什麼可能) –

回答

1

但是,當我嘗試指定WEB-INF目錄,如classeslib,我得到一個ClassNotFoundException。我究竟做錯了什麼?

這些目錄僅適用於在JSP和servlet中使用的類/ jar(即服務器需要的東西)。他們內部的資源可供網站訪問者使用。在這個意義上,「訪問者」是指用戶代理(即瀏覽器)或客戶端插件(如Flash或JRE)。

您可以通過將完整的URL粘貼到Web瀏覽器地址欄中的Jar來確認這一點,並點擊「enter」以瀏覽它。服務器將給出一條消息,說明'禁止'的效果。

WEB-INF是在Java Web應用程序中的文件夾的名稱:

也是其擴展WEB-INF info. page見。它用於存儲部署信息,如web.xml,所需的庫文件和編譯後的類文件。 通常無法通過網絡訪問。任何你想打仗,但不想公開的文件,然後web-inf是你可以保存這些文件的地方。

+0

謝謝,安德魯。我環顧了其他有關此主題的SO問題,並且我看到WEB-INF文件夾樹對applet沒有限制。但我想這並非總是如此,因爲第一次回答了關於這個主題的問題,我特別提到了將applet jar放在'classes'或'lib'中, –