Newsgroup: it.comp.java
Titolo: VJ++ e JDK 1.3

Devo sviluppare un programma in Java che richiederà obbligatoriamente
l'utilizzo di estensioni piuttosto recenti del linguaggio, in particolare
(almeno) le librerie Swing e tutto quanto contenuto nel package javax.*.
Per una serie di motivi l'IDE che utilizzo attualmente è il Visual J++ 6, e
non vorrei abbandonarlo perché lo trovo comodo come ambiente di sviluppo.
Conosco però le sue limitazioni, e in particolare so che per lui le libreri
recenti proprio non esistono.
Ho fatto alcune ricerche per tentare di risolvere il problema, e ho trovato
vari modi per far vedere librerie esterne all'IDE. In particolare, inserendo
il file rt.jar preso dal JDK 1.3.1_01 nel percorso di ricerca delle classi
utilizzato dal compilatore e dalla VM Microsoft, riesco a far sì che l'IDE
gestisca le librerie, mostrando ad esempio i membri delle classi quano se ne
scrive il nome. Il problema è che così facendo, al momento di compilare, non
funziona niente: le classi di runtime di rt.jar vanno a sovrascrivere quelle
predefinite, e il compilatore muore prematuramente.
Ho provato un altro sistema descritto nella KB Microsoft per utilizzare
package aggiuntivi: aggiungere il file .jar alla directory
c:\winnt\java\classes e impostare una chiave di registro per cercare lì le
classi da utilizzare; la descrizione dettagliata è in
http://support.microsoft.com/support/kb/articles/Q243/0/22.ASP
. Così facendo
l'IDE vede le classi, il compilatore compila, ma la VM Microsoft muore
appena tento di istanziare, ad esempio, un JFrame: viene lanciata
l'eccezione java.lang.unsatisfiedlinkerror, che da un controllo sul sito Sun
risulta significare che nella VM manca il codice per un qualche metodo che è
stato dichiarato nativo; il timore a questo punto è che la VM Microsoft non
sia compatibile con le ultime librerie Java, non per la semplice assenza di
queste, ma per qualche limitazione strutturale.
L'ultima cosa che ho potuto fare è stato sostituire in VJ++ il comando
dell'interprete Java da utilizzare, passando da jview.exe (VM Microsoft) a
java.exe del JDK. Così facendo funzionano IDE, compilazione ed esecuzione,
ma il debugger non va più, perché non riesce ad appoggiarsi alla VM Sun.
Qualcuno ha qualche consiglio da darmi per risolvere il problema ?
So che il VJ++ è odiato da molti, ma io lo trovo un IDE comodo, pratico e
maneggevole, e soprattutto *leggero*: il borland JBuilder 5, ad esempio, è
lento da far paura.
Grazie per ogni aiuto...
Massimo

 ha scritto nel messaggio
news:9t16sl$2fh6$1...@newsreader1.mclink.it...


Se la tua esigenza e' solo swing, e' sufficiente che ti scarichi la versione compatibile
con il jdk1.1 e lo metti nel percorso di ricerca delle classi, a memoria ricordo che
funzionava tutto. Certo, non e' l'ultima release ma almeno cosi funziona. 
L'archivio di swing lo trovi a:
http://java.sun.com/products/jfc/download.archive.html
Li trovi anche il link per il download della versione compatibile con il JDK1.1, che e'
quella che serve a te (la VM microsoft e' "targata", mi sembra, come 1.1.4)
Ti sarebbe sufficiente?
Ciao,
    Bruno.


|
| Bruno Bossola
| A Java Software Engineer :-)
| 
http://bbruno.fasturl.it
|
| 
http://members.xoom.it/bbruno
| 
http://digilander.iol.it/bbossola
|

 Ti sarebbe sufficiente?
Purtroppo no, quello che mi servirebbe sarebbero proprio le ultime librerie,
comprese "cosette" come le API Java 2D :-(
Grazie comunque per il consiglio, lo sapevo già e ho fatto funzionare
correttamente le Swing 1.1.1, peccato che, appunto, non mi bastino.
Quanto al far funzionare le librerie più recenti, comincio a disperarne: il
problema è sui metodi dichiarati "native", che vanno a cercare le DLL della
VM Sun, che sono incompatibili con quella Microsoft. Bisognerebbe
ricompilarle (i sorgenti, dopotutto, sono disponibili) generando delle
librerie che la VM Microsoft sia in grado di usare, ritengo che sarebbe
possibile (la VM Microsoft supporta JNI), ma è decisamente un progetto al di
fuori della mia portata :-/
Non è che per caso qualcuno l'ha già fatto ? :-)
Massimo

 Massimo
Intanto spiegaci cosa c'entra questo post con win2k. ok?
Io risolverei il problema in maniera drastica.
Lascia perdere Jbuilder, VisualAge,VJ....e comincia a programmare a riga di
codice, con il JDK della sun.Molto, molto meglio.

 di codice, con il JDK della sun.Molto, molto meglio.
Sì, per un programma di, mettiamo, tre classi, sarebbe l'ideale in effetti.
Ma vorrei fare di più.
Massimo

 Ma vorrei fare di piů.
Questa cosa non č assolutamente vera.
A riga di comando ci crei tutto quello che vuoi, anzi si riesce a fare molto
ma molto di piů che non con compositori visuali. E il codice č molto piů
ottimizzato.

 ottimizzato.
Nota a margine: io non ho mai utilizzato compositori visuali, anche per le
interfacce grafiche preferisco scrivere il codice a mano, soprattutto in
Java dove è piuttosto semplice (Visual C++ è un altro discorso, per aprire
una finestra ci vogliono tre pagine di codice :-( ). Ma apprezzo gli
ambienti di sviluppo (soprattutto quelli Microsoft) in quanto permettono di
organizzare e gestire molto meglio il codice, di avere sottomano al volo i
membri e i metodi di ogni classe e i tipi di ogni funzione, di saltare
comodamente da una funzione all'altra in caso di necessità.
Lavorando a riga di comando, questo semplicemente non è possibile o non è
affatto semplice.
Massimo