PDA

View Full Version : [Java] Classi sun.* non documentate


whynot611
11-10-2010, 23:48
Ciao a tutti,
Ho notato, scrivendo un programma in java che fa uso di alcune funzioni crittografiche, che esistono moltissime classi comprese nella JRE6 delle quali nelle api ufficiali non c'è traccia!
Queste classi si possono trovare sotto il percorso sun.*... (un mio caso è sun.security.pkcs).

Volevo sapere se voi avete qualche informazione in più su queste classi "nascoste", di cosa si tratta e dove si può trovare eventuale documentazione. Inoltre sarebbe bello capire se è possibile utilizzare queste classi nei propri programmi senza magari correre il rischio che in una versione successiva vengano fatte sparire o modificate senza preavviso..
Grazie in anticipo! :D

PGI-Bis
14-10-2010, 11:06
Sono classi specifiche dell'implementazione di Java fornita da sun, non possono essere usate direttamente poichè così facendo il programma cesserebbe di essere per la piattaforma Java e diventerebbe per UNA specifica implementazione della piattaforma Java, con gli ovvi problemi del caso.

Capita a volte di incontrare programmi che le usano e in quei casi si è chiaramente di fronte a qualcosa che è stato scritto con l'acume di una pelle di stracchino.

whynot611
14-10-2010, 13:12
Ah..interessante..
Perché io mi sono ritrovato ad usare una di quelle classi prprio su indicazione di una guida trovata sul sito di oracle! (ex sun)

http://download-llnw.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html

Nel mio programma sto cercando di interagire con una smart card (Token PKCS#11) per la cronaca...

tomminno
14-10-2010, 13:42
Sono classi specifiche dell'implementazione di Java fornita da sun, non possono essere usate direttamente poichè così facendo il programma cesserebbe di essere per la piattaforma Java e diventerebbe per UNA specifica implementazione della piattaforma Java, con gli ovvi problemi del caso.

Capita a volte di incontrare programmi che le usano e in quei casi si è chiaramente di fronte a qualcosa che è stato scritto con l'acume di una pelle di stracchino.

Beh andando a cercare il pelo nell'uovo quante sono le vere piattaforme Java?
Sbaglio o c'è solo OpenJdk?

Jak696
14-10-2010, 13:54
Beh andando a cercare il pelo nell'uovo quante sono le vere piattaforme Java?
Sbaglio o c'è solo OpenJdk?
ci sono varie implementazioni commerciali, delle quali la più famosa è sicuramente quella di IBM.
poi di open ci sono Harmony e Classpath (rispettivamente di Apache e GNU), anche se non sono ancora complete al 100%.

banryu79
14-10-2010, 13:57
[OT]
A proposito di OpenJDK e Harmony (per chi l'avesse mancata):
- IBM sceglie OpenJDK e abbandona Harmony (http://www.hwfiles.it/news/ibm-sceglie-openjdk-e-abbandona-harmony_34045.html)

PGI-Bis
15-10-2010, 01:10
Le piattaforme "Java" sono solo quelle che hanno passato il TCK di Sun (che deve essere eseguito ad ogni major release) e, che io sappia, sono quella di Sun, quella di Oracle (che in pratica ne ha due, destinate a fondersi), quella di IBM e IcedTea di Red Hat.

Tra le piattaforme che possono eseguire programmi Java ma non sono piattaforme Java (per via del mancato passaggio per il TCK) ci sono OpenJDK, Harmony e il progetto gnu/classpath.

E delle tre direi che quella che più si avvicina è OpenJDK.

tomminno
15-10-2010, 08:36
ci sono varie implementazioni commerciali, delle quali la più famosa è sicuramente quella di IBM.
poi di open ci sono Harmony e Classpath (rispettivamente di Apache e GNU), anche se non sono ancora complete al 100%.

Eh si ma non sono certificate.
Quindi quante sono le vere virtual machine Java?

banryu79
15-10-2010, 09:19
Per una data implementazione della piattaforma Java, quelle certificate sono quelle che hanno passato lo specifico JCK.
Se non ho capito male abbiamo:
- JRE (Sun... ora Oracle)
- JRockit (Oracle)
- IBM JVM (IBM)
- IcedTea (RedHat)

whynot611
16-10-2010, 18:48
Ok ma sapete se esiste documentazione sulle classi della sun?