Tenho uma aplicação simples em javam mas que usa as classes do pacote sun.security.util.*
Até ai sem problemas… roda numa boa em todas as máquinas que testei e que tenham a JRE 1.5 da SUN.
Em um dos novos testes, tentei usar outras VM’s, como a da IBM.
E ao roda a aplicação tive o serguinte problema na parte do Keystore:
Exception in thread "Thread-3" java.lang.NoClassDefFoundError: sun.security.util.DerOutputStream
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:69)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:131)
Pelo que andei lenbdo em alguns fóruns, o terei que mudar os meus imports para com.ibm.security.util.*.
Mas fiquei meio cabrero, poxa… pq não manter o pacote nativo e só criar um novo ??? Precisava mesmo substituir só para quebrar a compatibilidade ??
Ou eu que to comendo bola, e o pacote de segurança é um pacote a parte, como o freechart ?? (o que acredito que não seja)
Sempre que tenho de usar classes de criptografia, eu uso o famoso pacote BouncyCastle ( http://www.bouncycastle.org ). É porque classes “sun.security” só existem na JVM da Sun e “com.ibm” na JVM da IBM. Portanto, eu sempre incluo o BouncyCastle como dependência, para não depender nem da Sun nem da IBM.
Mas fiquei meio cabrero, poxa… pq não manter o pacote nativo e só criar um novo ??? Precisava mesmo substituir só para quebrar a compatibilidade ??
[/quote]
Você tem certeza que as classes são realmente compatíveis entre si, exceto pelo pacote? Acho que não devam ser.[/quote]
Já pensei nisso tb… mas antes queria ter certeza de que não tem como utilizar o pacote da sun… vou tentar adicionar no meu classpath o JAR da SUN que tenha esse pacote e ver o que acontece!