O que preciso para o meu applett rode?

10 respostas
manhanijava

Galera eu ja criei o applet, mas não consigo fazer ele rodar, o que é que eu jogo dentro do meu tom cat, a pasta de todo o projeto, ou só o jar, pois li bastante aqui sobre applet mas não to conseguindo, ele toda hora da erro de classnotfound vixi.class, poxa ja tentei de quase tudo…o que eu tenho que levar la pro meu tom cat ajuda ai galera???

10 Respostas

P

O nome do Applet é vixi.class ??? :shock:

manhanijava

é sim …e o nome do projeto é óia…mas não vamos se apegar aos nomes, por que esses coloquei em momento de fúria rsrsrs de tanto tentar e não conseguir…a dúvida é se eu coloco só o jar ou algo mais?? eu compilei no netbeans…cara ajuda ai…eu ja coloquei no tomcat o jar, ja coloquei a pasta toda, e ta fogo um help ai

P

É melhor mesmo não nos apergarmos a nomes, mas só para lembrar,
mesmo em momentos de fúria seja polido e utilize o Sun code convention :slight_smile:

http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

OK, esqueça por momento Netbeans, Tomcat, mulheres, etc… :slight_smile:

No seu HTML, verifique se o código para inserção do Applet segue o padrão baixo:

<applet code=NomeCompletoDaClasseApplet.class 
        archive="NomeDoJar.jar"
        width=100 height=100>
</applet>

No código acima o Applet está no package default (diretório root do jar)
e o HTML e o JAR estão no mesmo diretório…

manhanijava

estava de fato diferente o html, o erro agora é o seginte

lastModified = 1284122298000
load: class vixi.class not found.
java.lang.ClassNotFoundException: vixi.class
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:399)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:332)
	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(Thread.java:717)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/oia/vixi/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)

eu criei uma coisa pequena só pra fazer um teste, vou postar o código aqui não é possivel que não estou conseguindo devo estar comendo alguma bola besta…

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * vixi.java
 *
 * Created on 09/09/2010, 11:04:27
 */

package oia;

import java.text.DecimalFormat;

/**
 *
 * @author Udi
 */
public class Vixi extends javax.swing.JApplet {

    int iTot, val1, val2;
    String sTot;
    DecimalFormat decimal = new DecimalFormat("0.00");
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        btS = new javax.swing.JButton();
        tf1 = new javax.swing.JTextField();
        tf2 = new javax.swing.JTextField();
        btD = new javax.swing.JButton();
        lb1 = new javax.swing.JLabel();

        btS.setText("Somar");
        btS.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSActionPerformed(evt);
            }
        });

        tf1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tf1ActionPerformed(evt);
            }
        });

        btD.setText("Diminuir");
        btD.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btDActionPerformed(evt);
            }
        });

        lb1.setFont(new java.awt.Font("Tahoma", 3, 16));
        lb1.setText("jLabel1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(tf2, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tf1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(lb1, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(47, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(74, Short.MAX_VALUE)
                .addComponent(btS)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btD)
                .addGap(68, 68, 68))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap(46, Short.MAX_VALUE)
                        .addComponent(tf1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(tf2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(49, 49, 49))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(62, 62, 62)
                        .addComponent(lb1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btS)
                    .addComponent(btD))
                .addGap(55, 55, 55))
        );
    }// </editor-fold>                        

    private void tf1ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
    }                                   

    private void btSActionPerformed(java.awt.event.ActionEvent evt) {                                    
        calc();
        iTot = val1 + val2;
        sTot = decimal.format(iTot);
        lb1.setText(sTot);
    }                                   

    private void btDActionPerformed(java.awt.event.ActionEvent evt) {                                    
        calc();
        iTot = val1 - val2;
        sTot = decimal.format(iTot);
        lb1.setText(sTot);
    }                                   

    public void calc(){
        val1 = Integer.parseInt(tf1.getText());
        val2 = Integer.parseInt(tf2.getText());

    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btD;
    private javax.swing.JButton btS;
    private javax.swing.JLabel lb1;
    private javax.swing.JTextField tf1;
    private javax.swing.JTextField tf2;
    // End of variables declaration                   

}
tc_medeiros

manhanijava, tente o seguinte:

<applet code="nomeDaClasse" archive="nomeDoArquivoJar.jar" mayscript ></applet>

Ah, coloque as medidas a gosto,

Abs,

manhanijava

tc_medeiros:
manhanijava, tente o seguinte:

<applet code="nomeDaClasse" archive="nomeDoArquivoJar.jar" mayscript ></applet>

Ah, coloque as medidas a gosto,

Abs,

medeiros fala pra mim, o que eu tenho que levar la pro tom cat???

tc_medeiros

Dentro do seu projeto, dentro da pasta WebContent, onde tem a página, vc tb vai ter esse jar, que contém a sua classe junta. É o suficiente. Como você gerou o jar?

ViniGodoy

Engraçado, o povo fala tanto em HTML 5, web 2.0 ou 3.0, e quando chega num tópico de applet, fala para o cara usar a tag APPLET, que é deprecated, segundo o próprio W3C: http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.4

E não existirá no HTML 5.

O ideal é usar para isso o JNLP:
http://download.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html

Em conjunto com ele o Java Deployment Toolkit, com um javascript que facilita muito o deploy multiplataforma dos applets:
http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/runAppletFunction.html

manhanijava

eu criei a classe e compilei no netbeans…

tc_medeiros

Um applet que fiz, consegui fazer funcionar da seguinte forma:

1 - Criei a classe sem pacote;

2 - Compilei uso o comando: javac -Xlint -classpath .;“C:\Arquivos de programas\Java\jdk1.5.0_09\jre\lib\plugin.jar” minhaClasse.java

3 - Criei o jar com o comando: jar -cvf meuJar.jar *.class

4 - Copiei para a pasta que estava minha jsp;

5 - Coloquei na jsp o código que já postei.

Funcionou aqui.

Criado 9 de setembro de 2010
Ultima resposta 10 de set. de 2010
Respostas 10
Participantes 4