Carregar jar em Applet

11 respostas
astiazara

Fiz uma applet no Netbeans e está funcionando. Eu uso ‘debug file’ e ‘run file’ (menu direito) e roda OK.
Porém estou tendo problema para distribuir: fiz uma página html com a tag da applet, coloquei na mesma pasta da página os arquivo class gerados pelo netbeans e tentei abrir a página no browser.
Dá o seguinte erro:

java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group

at AppLab.init(AppLab.java:27)

at sun.applet.AppletPanel.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Eu localizei o jar onde está essa classe, mas só colocar na mesma pasta não adianta. Essa classe é usada num JPanel que criei com alguns controles AWT.
O que faço?

11 Respostas

T

Acho que no attribute “archive” você tem de mencionar também o jar da biblioteca (swing-layout.jar se não me engano). Mas é só um chute; não sei se isso é suficiente.

astiazara

Funcionou! Muito obrigado :smiley:

limasiqueira

Por favor amigo eu to tentando fazer a mesma coisa, poderia postar um exemplo da chamada do applet que vc fez que funcionou.

grato

astiazara
Eu copiei o arquivo swing-layout-1.0.jar para a mesma pasta da applet que por sua vez é a mesma do html.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <title>Labirinto</title>
  </head>
  <body>
    <h1>Labirinto</h1>
    <br/>
    <applet code="AppLab.class" width="300" height="190" archive="swing-layout-1.0.jar">
        O seu navegador não suporta Java Applets.
    </applet> 
  </body>
</html>
limasiqueira

vlw, consegui…

J

Estava com um problema parecido. Segui as dicas dadas aqui nesse tópico e agora obtenho a seguinte mensagem:

java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM)

at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)

at java.security.AccessController.checkPermission(AccessController.java:427)

at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)

at java.lang.SecurityManager.checkExit(SecurityManager.java:744)

at javax.swing.JFrame.setDefaultCloseOperation(JFrame.java:363)

at ContaFrase.initComponents(ContaFrase.java:38)

at ContaFrase.(ContaFrase.java:19)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:494)

at java.lang.Class.newInstance0(Class.java:350)

at java.lang.Class.newInstance(Class.java:303)

at sun.applet.AppletPanel.createApplet(AppletPanel.java:721)

at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1781)

at sun.applet.AppletPanel.runLoader(AppletPanel.java:650)

at sun.applet.AppletPanel.run(AppletPanel.java:324)

at java.lang.Thread.run(Thread.java:595)
Parece que o erro vem daqui:

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new ContaFrase().setVisible(true);

}

});

}

O que faćo?
Obrigada!

T

Dê uma olhada no método initComponents, porque provavelmente ele está dizendo que ao fechar o JFrame você iria fechar o browser, o que não é permitido. Remova essa linha que contém “setDefaultCloseOperation” e tente novamente.

J

thingol, obrigada!
Eu estava fazendo tudo errado, tinha criado um JForm, não um applet…:blush:
Refiz o applet, mas continua não rodando. Quando coloco o debugger do appletviewer aparece isso:

run ContaFrase.class
run ContaFrase.class
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable

VM Started:
Exception occurred: java.lang.ClassNotFoundException (uncaught)“thread=main”, java.net.URLClassLoader$1.run(), line=200 bci=72

Poxa, desenhar o applet é facílimo, mas colocá-lo para rodar em um html, fora do projeto é muito complicado!

andredeividi

Cara

1ª seu applet esta assinado ?
2ª vc ta empacotando com netbeans?

caso sim na 2ª precione F11 na sua aplicação
va na pasta dist de seu projeto e copie a o jar e pasta lib
para seu servidor.

e não esqueça de assinar o cara.

abraço

J

Ufa! Consegui!
Muito obrigada pelas dicas… :smiley:

J

Como faço para adicionar mais de uma referencia no archive

Criado 11 de janeiro de 2007
Ultima resposta 21 de fev. de 2008
Respostas 11
Participantes 6