Erro ao rodar projeto em MAC

oi pessoal.
fiz um projeto, criei o .jar e distribui… pra quem tem windows está rodando sem problema… mas está dando erro quando vai rodar em um MAC…
tentei procurar no google, mas não encontrei nada…
teoricamente era pra funcionar em qualquer SO né… ou tem algumas classes e métodos que não podem ser transportados pro MAC?
o erro que apareceu foi esse:
21/03/09 20:23:53 [0x0-0x11c11c].com.apple.JarLauncher[3157] Exception
in thread “main”
21/03/09 20:23:53 [0x0-0x11c11c].com.apple.JarLauncher[3157]
java.lang.NoClassDefFoundError: javax/swing/GroupLayout$Group

obrigado pela ajuda,
abraços

alguém faz ideia do motivo pra esse erro??
estou perdido!

A classe javax.swing.GroupLayout só apareceu no Java 6.0 . O mais provável é que seu Mac não esteja com a versão 6.0 e sim com a versão 5.0 do Java.

Se for isso que estiver ocorrendo, você tem de alterar algumas opções do NetBeans para que ele gere o código usando org.jdesktop.layout.GroupLayout, e incluir o jar “swing-layout.jar” com seu programa.

hm… acho que entendi… mas tem como ser mais específico sobre como fazer isso? (como alterar essa opção) (como criar esse novo .jar)

Estou sem o NetBeans aqui para lhe orientar… Mas dê uma lidinha na documentação abaixo.

http://wiki.netbeans.org/FaqFormSwingLayoutLibrary

(Ele fala de “NetBeans 5.5” mas provavelmente vale também para a sua versão.)

li… achei aqui um arquivo chamado swing-layout-1.0.3.jar… é para mandar ele junto com o .jar principal?
só isso vai adiantar? e aquilo de mudar o código retirando javax.swing.GroupLayout e colocando org.jdesktop.layout.GroupLayout?
as partes do código que aparecem javax.swing.GroupLayout são aquelas que o netbeans protege e não dá para editar…

É isso aí. Como o NetBeans “protege” esse código, você tem de alterar uma configuração do seu projeto, para que o NetBeans regere seu código e ponha “org.jdesktop.layout” em vez de “javax.swing”. Para forçar a regerar, normalmente eu altero alguma coisinha no formulário que criei, salvo, e depois volto a alteração para trás.

entendi, mas onde é essa configuração que eu tenho que alterar?
faz pouco tempo que venho usando o netbeans, não me acostumei com ele ainda… falando nisso, preciso aprender a usar o profiler… mas isso é outra história =)

Pois é, estou sem o Netbeans aqui para lhe ajudar indicando exatamente onde é que você tem de fazer. Mas a tal documentação menciona uma coisa chamada “Layout Generation Style”. Procure isso por favor.

encontrei isso… acho que resolve a dúvida… caso alguem mais tivesse a mesma dúvida, está ae:
[i] http://blogs.sun.com/NetBeansSupport/entry/target_jdk
…For swing applications using Group Layout, there is one more
caveat, if the ide is run under jdk1.6.
Group Layout was not part of jdk1.5. NetBeans matisse introduced
GroupLayout as a library for jdk1.5 , under
org.jdesktop.layout.GroupLayout package structure. The package was
later made part of JDK itself under javax.swing package in jdk1.6.

To generate programs that use GroupLayout and target jdk1.5 and later: 

* In 'Tools | Options | Advanced Options | Options | Editing | GUI 

Builder’ , set the ‘Layout Generation’ style to ‘Swing Layout Extensions
Library’.
* Right-click on ‘Libraries’ node in the project, select ‘Add
Library’ and add ‘Swing Layout Extensions’ library to the project.

To generate programs that use GroupLayout and target jdk1.6 and later: 

* In 'Tools | Options | Advanced Options | Options | Editing | GUI 

Builder’ , set the ‘Layout Generation’ style to ‘Standard Java 6 Code’.
* Ensure that ‘Swing Layout Extensions’ library is not part of the
project (thus ensuring it will not be packaged in the final application
jar file)… [/i]

mas depois falam

[i]I think I’ll have to recreate teh forms from scratch again. (I did this last
time in a test but was hoping not to.)

It wants to insist on javax.swing.grouplayout instead of
org.jdesktop.layout.GroupLayout, which appears to be the 1.5 method of
things.

bummer!
[/i]será que não tem mesmo um jeito de alterar isso agora com o projeto feito? como é aquilo que você falou, de mudar e depois desfazer? não entendi…

Por exemplo, digamos que o projeto tenha uma tela com um botão “OK”. Aí você muda esse botão para “OK!” ou coisa parecida, salva o projeto, e vê se ele regerou os fontes do jeito que você quis. Se regerou corretamente, então você volta o botão para trás para “OK” e então você salva o projeto de novo. Acho que você teria de fazer isso para todas as telas, já que ele não fica regerando à toa.

é, acho que isso não dá certo…
tentei mudar textos, apagar componentes, depois dou um find org.jdesktop.layout.GroupLayout no código-fonte e nada… =/