Как запустить Java-апплет на Mac OS 10.6.6

Я нахожусь в своем первом classе программирования, и теперь я дохожу до конца семестра. У меня есть онлайн-портфолио, в котором я делюсь своими достижениями в колледже. На этом этапе в семестре я хотел бы загрузить некоторые из простых апплетов, которые я создал для своего онлайн-портфолио. Мое портфолио размещено на Weebly.com. Я попытался загрузить файлы на сайт хоста и использовать простые tags для запуска апплета в html. Я уверен, что я обращаюсь к файлам, используя правильные каталоги. Но прежде чем мы перейдем к каким-либо выводам, я решил, что должен запускать аплеты локально, чтобы я делал все правильно. Я нахожусь в macbook pro под управлением ОС 10.6.6. В Java Preferences мои версии Java SE представляют собой 64-битные Java SE 6 и 32-разрядные Java SE 6. Моя версия плагина 1.6.0 (находится в / System / Library / Java / JavaVirtualMachines). Это единственные версии, которые у меня есть на моей машине. Мои исследования говорят мне, что у меня могут быть разногласия в версии. Некоторые форумы предложили вернуться к плагину версии 1.5 (хотя, я понятия не имею, как это сделать). Теперь я уверен, что это яблоко обновило Safari до 64-битной версии. У меня Eclipse установлен и 1.6. Кажется, все на одной странице для меня.

И да, я читал все связанные с этим вопросы снова и снова. Большинство из них сейчас немного устарели.

Вот мой код апплета:

/** * Class NightScene - Draws a night scene (just for fun). * * @author Alex Stout * @version February 8, 2011 */ package lab05_1; import java.awt.*; import javax.swing.*; public class NightScene extends JApplet { /** * Paint method for applet. * * @param g the Graphics object for this applet */ public void paint(Graphics g) { g.setColor(Color.BLUE.darker().darker().darker()); g.fillRect(0,0, this.getWidth(), this.getHeight()); this.drawMoon(g); this.drawStars(g); this.drawHorizon(g); } public void drawStars(Graphics h) { for (int i = 0 ; i <= this.getWidth()*5; i++) { int x = (int)(Math.random()*this.getWidth()); int y = (int)(Math.random()*this.getHeight()); h.setColor(Color.WHITE); h.fillOval (x, y, (int) (Math.random()*3)+1, (int) (Math.random()*3)+1); } } public void drawMoon(Graphics j) { int x = (int)(Math.random()*(this.getWidth()-200)+50); int y = (int)(Math.random()*(this.getHeight()-200)+50); j.setColor(Color.YELLOW.brighter().brighter()); j.fillOval (x, y, this.getWidth()/10, this.getWidth()/10); j.setColor (Color.BLUE.darker().darker().darker()); j.fillOval (x-(this.getWidth()/100), y-(this.getWidth()/100), this.getWidth()/10, this.getWidth()/10); } public void drawHorizon(Graphics k) { int xi = 0; int xj = this.getWidth(); int yj = this.getHeight(); int rh = this.getHeight()-this.getHeight()/8; for (int i=0; i < xj; i++) { k.setColor(Color.BLACK); k.drawLine(xi, yj, xi, rh); k.setColor(Color.BLUE); if(Math.random()<0.50) { k.drawLine(xi++, rh++, xi, rh++); } else { k.drawLine(xi++, rh--, xi, rh--); } } } } 

Вот мой html-код:

     

Вот выход Java Console:

 Java Plug-in 1.6.0_24 Using JRE version 1.6.0_24-b07-334-10M3326 Java HotSpot(TM) 64-Bit Server VM User home directory = /Users/myUserName 

Некоторые люди предложили использовать codebase = “.” поэтому я попробовал это безрезультатно. Он не работает с ним или без него. Я попытался ввести полный путь к каталогу, но не успел. Я пробовал кавычки и никаких кавычек вокруг имени classа. Я пытался с и без .class в конце. Я попытался создать подкаталог lab05_1, потому что это имя пакета в коде. Не повезло. И файл classа, и файл html находятся в одной и той же папке на рабочем столе. Файл classа является копией исходного, созданного в Eclipse, но имеет одно и то же имя, поэтому я не думаю, что это должно приводить к возникновению каких-либо проблем в разных каталогах.

Я не знаю, что еще делать. Пожалуйста помоги! Это раздражало меня неделю. Я потратил часы на часы на что-то настолько простое.

У меня нет Mac для проверки этого, но если вы измените свой HTML-файл, он должен работать – вам не хватает имени пакета для NightScene.class.

    

Ссылка Oracle для тега APPLET находится здесь .

С этой страницы:

CODE = appletFile

Этот атрибут REQUIRED дает имя файла, содержащего подclass Applet подclassа. Этот файл относится к базовому URL-адресу апплета. Это не может быть абсолютным. Должен присутствовать один из CODE или OBJECT. Значение appletFile может иметь вид classname.class или форму packagename.classname.class .


EDIT: На всякий случай неясно, каталог должен быть выложен следующим образом:

  +-top-level/ | +-lab05_1/ | | | +-NightScene.class | +-test.html 

Возможно, теперь старый, я просто нашел эту страницу, пытаясь ответить на другой вопрос, но для чего это стоит, глядя на ваш оригинальный HTML и ссылку ORACLE, я вижу, что у вас не было кавычек вокруг имени файла classа. Подозреваю, что это действительно может быть причиной проблемы. По сути, это, возможно, то, что «Spong» тоже получает. Я просто не заметил никаких упоминаний о кавычках, которые выскочили на меня …