Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Compilare con classi esterne

    Buongiorno,
    Ho la necessità di compilare un sorgente col vecchio comando javac.
    Il file che ho da compilare ha dei jar esterni che sono riuscito ad includere nella mia riga di comando.
    Il problema è che sotto la cartella dove è presente il java da compilare sono presenti altri class che dovrebbero essere inclusi nella compilazione ma non capisco come includerli.

    ho fatto un piccolo bat
    cd N:\tmp\java\Esempi\
    set CLASSPATH=.;E:\lib\Libraries\*
    javac SchedulerViewer.java

    sapevo che mettendo il puntino nel classpath automaticamente prende la posizione del file visto che poi nel java vado a recuperare le librerie nella cartella sottostante con l'import( import net.bridge.*), invece non riesce a trovare questi class.

    solo se nel bat carico javac -cp trovo le classi, ma purtroppo non carica stavolta le librerie.

    Potete darmi una suggerimento?
    Grazie.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non usare la variabile d'ambiente CLASSPATH.

    Semplicemente, nello switch "-cp" del comando javac elenca tutte le directory che contengono file .class e tutti i JAR.
    Esempio: ho un file "pippo.java" da compilare che richiede una libreria contenuta in un JAR "libreria.jar" che si trova in "lib" + una serie di file .class "sciolti" che si trovano alcuni nella cartella "altro" e alcuni nella cartella dove c'è il sorgente:

    codice:
    javac -cp .;altro\;lib\libreria.jar pippo.java

    Attenzione solo al package dei file "sciolti"... se i file sciolti fanno parte di un package allora devono risiedere all'interno di una struttura di directory he riflette il package e il classpath va impostato nella directory "root" del package.

    In CLASSPATH non ci vanno indicazioni di file class (quindi, niente asterisco) solo CARTELLE o FILE.JAR/ZIP


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.