Cómo ejecutar un Applet de Java en Mac OS 10.6.6

Estoy en mi primera clase de progtwigción y ahora estoy llegando al final del semestre. Tengo un portafolio en línea donde comparto mis logros universitarios. En este punto del semestre, me gustaría subir algunos de los Applets simples que he creado a mi cartera en línea. Mi cartera está alojada en Weebly.com. Intenté cargar los archivos en el sitio host y usar las tags simples para ejecutar el applet dentro del html. Estoy bastante seguro de que estoy accediendo a los archivos usando los directorios correctos. Pero antes de llegar a ninguna conclusión allí, decidí que debería ejecutar los applets localmente para asegurarme de que estoy haciendo todo correctamente. Estoy en un macbook pro ejecutando OS 10.6.6. En Java Preferences, mis versiones de Java SE son Java SE 6 de 64 bits y Java SE 6 de 32 bits. Mi versión de complemento es 1.6.0 (se encuentra en / System / Library / Java / JavaVirtualMachines). Estas son las únicas versiones que tengo en mi máquina. Mi investigación me dice que puedo tener desacuerdos de versiones. Algunos foros han sugerido volver al plugin versión 1.5 (aunque no tengo ni idea de cómo). Ahora estoy bastante seguro de que Apple actualizó Safari a una versión de 64 bits. Tengo Eclipse configurado en 1.6 también. Todo parece estar en la misma página para mí.

Y sí, he leído todas las preguntas relacionadas aquí una y otra vez. La mayoría de ellos están un poco desactualizados ahora.

Aquí está mi código de applet:

/** * 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--); } } } } 

Aquí está mi código html:

     

Aquí está la salida de la consola Java:

 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 

Algunas personas han sugerido usar codebase = “.” así que lo intenté en vano. No funciona con o sin ella. Traté de poner en la ruta completa del directorio, sin éxito. Probé con comillas y sin comillas sobre el nombre de la clase. Intenté con y sin .class en el extremo. Intenté hacer un subdirectorio lab05_1 porque ese es el nombre del paquete en el código. Sin suerte. Tanto el archivo de clase como el archivo html están en la misma carpeta en el escritorio. El archivo de clase es una copia del original que se creó en Eclipse, pero tiene el mismo nombre, por lo que no creo que esto cause problemas en directorios diferentes.

No sé que más hacer. ¡Por favor ayuda! Esto me ha estado molestando por una semana. Pasé horas y horas en algo tan simple.

No tengo una Mac a mano para verificar esto, pero si cambias tu archivo HTML, debería funcionar — te está faltando el nombre del paquete para NightScene.class.

    

La referencia de Oracle para la etiqueta APPLET está aquí .

Desde esa página:

CÓDIGO = appletFile

Este atributo OBLIGATORIO proporciona el nombre del archivo que contiene la subclase Applet comstackda del applet. Este archivo es relativo a la URL base del applet. No puede ser absoluto. Uno de CÓDIGO u OBJETO debe estar presente. El valor de appletFile puede ser de la forma classname.class o de la forma packagename.classname.class .


EDITAR: solo en caso de que no esté claro, el directorio debe ser distribuido así:

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

Tal vez viejo ahora, acabo de encontrar esta página tratando de responder una pregunta diferente, pero por lo que vale la pena, mirando su HTML original y el enlace ORacle, veo que no tenía comillas alrededor del nombre del archivo de la clase. Sospecho que realmente puede haber sido la raíz del problema. En efecto, esto es quizás a lo que también llega ‘Spong’. Simplemente no vi ninguna mención de las comillas, que es lo que saltó sobre mí …