Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Запись пути к аплету


Автор: _Y_ 30.1.2011, 20:26
Лет 10 аплетами не занимался почти. И вот вопрос детского уровня. Как вставить аплет в HTML? smile

1. Кладу аплет на сервер и туда же HTML-страничку, содержащую строку 
Код
<Applet Code="TestApplet.class" width="400" height="300"></Applet>

Все класс - круче, чем у Малевича. У него просто квадрат, http://www.sitey.narod.ru/a/sameDir.html.

2. Теперь создаю в той же директории поддиректорию и пытаюсь положить HTML в нее, не двигая аплет. Строку меняю соответстующим образом:
Код
<Applet Code="./TestApplet.class" width="400" height="300"></Applet>

Говорит что найти класс не может:
Код

load: class ./TestApplet.class not found.
java.lang.ClassNotFoundException: ..TestApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.net.UnknownHostException: TestApplet
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 9 more
Exception: java.lang.ClassNotFoundException: ..TestApplet.class

http://www.sitey.narod.ru/a/a/subDir.html. Пробовал так записывать:
Код
<Applet Code="../TestApplet.class" width="400" height="300"></Applet>

тоже не работает.

3. Пробую прописать полный путь:
Код
<Applet Code="http://www.sitey.narod.ru/a/TestApplet.class" width="400" height="300"></Applet>

Тот же результат
Код

load: class http://www.sitey.narod.ru/a/TestApplet.class not found.
java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://www/sitey/narod/ru/a/TestApplet/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 9 more
Exception: java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
load: class http://www.sitey.narod.ru/a/TestApplet.class not found.
java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://www/sitey/narod/ru/a/TestApplet/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 9 more
Exception: java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
load: class http://www.sitey.narod.ru/a/TestApplet.class not found.
java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://www/sitey/narod/ru/a/TestApplet/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 9 more
Exception: java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
load: class http://www.sitey.narod.ru/a/TestApplet.class not found.
java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://www/sitey/narod/ru/a/TestApplet/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 9 more
Exception: java.lang.ClassNotFoundException: http:..www.sitey.narod.ru.a.TestApplet.class

Вот http://www.sitey.narod.ru/a/a/subDirAbs.html.

4. Вот еще нерабочий вариант
Код
<Applet codebase="http://www.sitey.narod.ru/a/" Code="TestApplet.class" width="600" height="500"></Applet>


И что я не так пишу?

Спасибо.

Автор: Skipy 31.1.2011, 11:40
Вопрос на засыпку. А какое полное имя апплета? С пакетом.

Автор: _Y_ 31.1.2011, 19:07
Цитата(Skipy @ 31.1.2011,  11:40)
Вопрос на засыпку. А какое полное имя апплета? С пакетом.

У него нет пакета. Так полное имя и есть TestApplet.class. Впрочем, я пробовал и с пакетом, но решения не нашел. Не стал описывать "пакетные" эксперименты т.к. там слишком много вариантов с тем же результатом: работает только тот HTML, который находится в той же директории, что и директория пакета smile 

Автор: _Y_ 16.4.2011, 12:46
Вернулся к старой своей борьбе с апплетами. Посмотрите, пожалуйста. Что-то у меня ничего не получается. Начал с начала
1. Вот такой апплет:
Код

package pack1;

import java.applet.Applet;
import javax.swing.JLabel;

public class AppletInJar  extends Applet {
    public void init(){
        this.add(new JLabel("Applet In Jar"));
    }
}

2. Пакую его в JAR с помощью Eclipse, используя все установки по умолчанию.
3. Пишу вот такой HTML
Код

<HTML><head></head>
<body>
<Applet Code="TestAppletInJar.pack1.AppletInJar.class" width="400" height="300"></Applet>
</body></HTML>

Скаладываю оба файла (JAR и HTML) в одну директорию и http://sitey.narod.ru/a/TestAppletInJar.html.
Получаю вот такую ошибку
Код

load: class TestAppletInJar.pack1.AppletInJar.class not found.
java.lang.ClassNotFoundException: TestAppletInJar.pack1.AppletInJar.class
    at sun.applet.AppletClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.applet.AppletClassLoader.loadCode(Unknown Source)
    at sun.applet.AppletPanel.createApplet(Unknown Source)
    at sun.plugin.AppletViewer.createApplet(Unknown Source)
    at sun.applet.AppletPanel.runLoader(Unknown Source)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
    at sun.applet.AppletClassLoader.getBytes(Unknown Source)
    at sun.applet.AppletClassLoader.access$100(Unknown Source)
    at sun.applet.AppletClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 10 more

Сколько вариантов не пробовал - ничего не получается. Подскажите, пожалуйста, где что не так.

Автор: _Y_ 16.4.2011, 17:14
Голову ломал-ломал и сломал. Вот так надо было:
Код

<Applet Code="pack1.AppletInJar.class" ARCHIVE = "TestAppletInJar.jar" width="400" height="300"></Applet>

Работает smile 

ЗЫ: Вообще плохо, что нигде не удалось найти четкого описания как прописываются пути для аплетов. Только бессистемно разбросанные по Инету примеры smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)