2013-09-05 2 views
0

Мне было интересно, может ли кто-нибудь предоставить мне некоторый фон о том, как работают теги кода и кода при запуске java-апплета.Поле относительной кодовой базы в апплете во встроенной системе

Моя проблема заключается в следующем: у меня есть Java-апплет, состоящий из нескольких файлов классов по нескольким каталогам (например, у меня есть main/applet.class, main/panel.class, geom/shapes.class ...). Апплет отлично работает при запуске с моего локального жесткого диска, но теперь я хочу переместить его для запуска встроенной системы. Файлы в моей встроенной системе будут выглядеть так:

+ webs 
| - appPage.html 
|-+ myApp 
    |-+ main 
    | - applet.class 
    | - panel.class 
    |-+ geom 
     - shapes.class 

(На самом деле это немного больше, чем это ...). Учитывая, что я могу загрузить appPage.html из моего браузера, как выглядят поля кода и кодовой базы тега апплета? (Я попробовал несколько комбинаций, и не смогли найти какой-нибудь, что подходит. Я получаю сообщение коробки, такие как

<applet code = "main/applet.class" codebase="webs/myApp" width=1000 height=700></applet> 

, но я получаю ошибку ClassNotFoundException (main.applet.class). Я вы искали веб-сайт и не можете найти хорошее объяснение того, что именно следует использовать в кодовой базе или коде. Любая помощь будет оценена (обратите внимание: я новичок в java и html, поэтому простите меня, если я пропущу что-то очевидное) .

+0

Вы пробовали 'кодовая =" MYAPP «'? – chrylis

+0

Да. Я пробовал несколько вещей, ни одна из которых не работала. Я решил, что веб-страница загружается с родительской страницы, которая находится в родительском каталоге, поэтому, возможно, кодовая база должна была относиться к родительской странице, а не к текущей странице, так как я добрался до примера выше - конечно это тоже не сработало. – John

ответ

1

Для структуры, показанной, это:

<applet 
    code = "main/applet.class" 
    codebase="webs/myApp" 
    width=1000 
    height=700> 
</applet> 

Должно быть:

<applet 
    code = "main.applet" 
    codebase="../myApp" 
    width=1000 
    height=700> 
</applet> 
1

от HTML applet Tag:

  • кодовая: Определяет относительную базу U RL для апплетов, указанных в атрибуте кода
  • код: Определяет имя файла апплета Java
  • архив: Определяет местоположение файла архива

Другими словами:

code указывает, что класс в вашем JAR должен быть выполнен, чтобы запустить Applet (этот класс должен расширять java.Applet или javax.swing.JApplet). В вашем случае main.applet.class

codebase является относительный URL-путь к JAR-файла.

вы должны также определить атрибут archive в <applet> с myApp.jar

+0

JAR-файл, который вы говорите? (я упоминал, что я был новичком в этом?). Я могу попытаться создать JAR-файл и использовать его вместо файлов .class. Это было бы более аккуратно. Для кодовой базы вы указываете http: // mywebserver/webs /, который будет абсолютным путем. В моем случае, поскольку это встроенная система, абсолютный путь будет зависеть от IP-адреса устройства, поэтому мне нужно будет указать относительный путь. Итак, путь должен быть относительно того, что именно (путь html-страницы с тегом , который я предполагаю?) – John

+0

_ путь по html-странице с тегом * Да **. и создать банку легко;) google it –

+0

Если я перемещаю файл .jar в тот же каталог, что и файл html, и опускаю поле codebase, оно работает. Вне этого, похоже, он не работает. Относительная кодовая база, кажется, убивает меня. В любом случае, файл jar достаточен для моих нужд, так как я не перепутаю родительский каталог с тонкими новыми файлами. Спасибо – John