трудности с запуском некоторых старых Java-апплетов, у меня есть Java 8 и appletviewer

Я пытаюсь запустить несколько старых Java-апплетов из старой книги Роберта ЛаФора «Алгоритмы и структуры данных в Java».

https://sites.fas.harvard.edu/~cscie119/resources/lafore/

или

https://cs.brynmawr.edu/Courses/cs206/spring2004/lafore.html

У меня установлен JDK 1.8/Java 8, и он включает в себя appletviewer.exe.C:\Program Files\Java\jdk1.8.0_251\bin\appletviewer.exe

Я не помню, как ими можно управлять.

У меня на пути есть appletviewer.exe.

      C:\aaa>path=%path%;C:\Program Files\Java\jdk1.8.0_251\bin

C:\aaa>appletviewer
Usage: appletviewer <options> url(s)

where <options> include:
  -debug                  Start the applet viewer in the Java debugger
  -encoding <encoding>    Specify character encoding used by HTML files
  -J<runtime flag>        Pass argument to the java interpreter

The -J option is non-standard and subject to change without notice.

C:\aaa>wget https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/Array.class
--2020-05-19 07:00:11--  https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/Array.class
Resolving cs.brynmawr.edu (cs.brynmawr.edu)... 165.106.10.107
Connecting to cs.brynmawr.edu (cs.brynmawr.edu)|165.106.10.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3967 (3.9K) [application/octet-stream]
Saving to: 'Array.class'

Array.class                           100%[=======================================================================>]   3.87K  --.-KB/s    in 0s

2020-05-19 07:00:11 (18.7 MB/s) - 'Array.class' saved [3967/3967]


C:\aaa>dir Array.class
 Volume in drive C has no label.
 Volume Serial Number is 4645-5DCE

 Directory of C:\aaa

03/01/2005  15:59             3,967 Array.class
               1 File(s)          3,967 bytes
               0 Dir(s)  335,436,058,624 bytes free

C:\aaa>wget https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/Array.java
--2020-05-19 07:00:24--  https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/Array.java
Resolving cs.brynmawr.edu (cs.brynmawr.edu)... 165.106.10.107
Connecting to cs.brynmawr.edu (cs.brynmawr.edu)|165.106.10.107|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-05-19 07:00:25 ERROR 404: Not Found.


C:\aaa>appletviewer Array.class

C:\aaa>appletviewer Array
I/O exception while reading: C:\aaa\Array (The system cannot find the file specified)

C:\aaa>

В качестве другого маршрута я только что попробовал https://sourceforge.net/projects/portableapps/files/Mozilla%20Firefox%2C%20Portable%20Ed./ Mozilla Firefox, Portable Edition 2.0.0.8 22 октября 2007 г.

Но Firefox не поставляется с плагином и не может его установить.

Добавлен

Возвращаясь к попыткам использования appletviewer, в результате поиска в Google этой ошибки я обнаружил, что appletviewer предназначен для запуска с использованием HTML-файла.

Поэтому я попробовал

      C:\aaa>wget https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/Array.html

и я получаю

      C:\aaa>Appletviewer Array.html
java.lang.NoClassDefFoundError: personGroup
        at Array.init(Array.java:746)
        at sun.applet.AppletPanel.run(AppletPanel.java:434)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: personGroup
        at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:219)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 3 more

Я попробовал jd-gui-windows-1.6.6, открыл Array.class и вижу, что он имеетprivate personGroup thePersonGroup;

По этому URL

https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/....

Без сомнения, это ссылка на файловую систему.

ЕстьChap02/Array/Array.htmlиChap02/Array/Array.classно я не вижу ни personGroup.class, ни personGroup.java

1 ответ

Вы загрузили только Array.class, который является «стартап-классом». Однако этот класс загружает другие классы, находящиеся в том же каталоге. Например, классpersonGroupтакже доступен в этом каталоге:

https://cs.brynmawr.edu/Courses/cs206/spring2004/WorkshopApplets/Chap02/Array/personGroup.class

Следовательно, вам придется загружать каждый класс, на который есть ссылка в каждом загружаемом вами классе, если только у вас нет всех задействованных классов.

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

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

Другие вопросы по тегам