2009-03-08 4 views
5

Мне интересно, можете ли вы поместить основной класс (или класс с методом init, что угодно) внутри пакета и все еще запустить его в браузере? Большую часть времени я помещал свои апплеты в (пакет по умолчанию), но мой апплет здесь находится в пакете, так что я могу его встроить в веб-страницу?Java-апплет с init() в пакете?

Я искал его с небольшими результатами. Скажем, у меня есть MyApplet.class в каталоге с именем app в файле jar, который называется MyApp.jar.

Я пробовал это, но безуспешно:

<applet archive="MyApp.jar" code="MyApplet.class"> 
<applet archive="MyApp.jar" code="app/MyApplet.class"> 
<applet archive="MyApp.jar" code="/app/MyApplet.class"> 
<applet archive="MyApp.jar/app/" code="MyApplet.class"> 
<applet archive="MyApp.jar" codebase="app/" code="MyApplet.class"> 

Каждый из них дает мне ClassNotFoundException.

Заранее спасибо.

ответ

3

Атрибут архив должен содержать имя файла банку, и он должен быть помещен в том же каталоге, что и веб-страницы ,

Файл класса в атрибуте code должен содержать полное имя класса, разделенное с помощью косой черты, чтобы указать структуру каталогов.

Таким образом, в вашем списке пробных попыток пробная версия 2 должна быть успешной при условии, что MyApp.jar действительно присутствует вместе со страницей html. Кроме того, MyApp.jar должен содержать каталог «app» в корне, который должен содержать файл класса MyApplet. Не забывайте иметь класс MyApplet в пакете приложений.

Вы можете посмотреть на this page для справки.

1

Я не уверен, но вы пробовали, как это ?:

<applet archive="MyApp.jar" code="MyApplet"> 
3

Ну, вы перечислите пакет в виде пунктирной формы, и вы не поместите «.class» в конец.

<applet code="packagefolder1.packagefolder2.MyApplet" archive="folder1/folder2/MyApp.jar"> 

</applet>