Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315

    [Java] Specifica classpath da riga di comando: impossibile trovare o caricare la classe principale

    Devo svolgere un esercizio prendendo come base di partenza Java DB incluso nel JDK.
    Se non ho capito male devo aggiungere prima la variabile CLASSPATH al mio programma e poi aggiungere a questa il puntamento al file derby.jar, e tutto questo lo devo fare necessariamente da riga di comando.
    Alla luce di questo tramite riga di comando mi sono posizionato all'interno della cartella del mio progetto e ho digitato:
    java -cp .;C:\Program Files\Java\jdk1.8.0_25\db\lib\derby.jar com.java8.mod18.test.Rubrica
    ma mi esce questo errore:
    Errore: impossibile trovare o caricare la classe principale Files\Java\jdk1.8.0_25\db\lib\derby.jar
    Purtroppo se non riesco a caricare quella struttura (l'intenzione era quella di creare successivamente un db vuoto per svolgere poi delle operazioni tramite il mio programma) non posso svolgere l'esercizio che mi richiede espressamente di utilizzare un db come Java DB.

    Dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Leggi bene l'errore, non gli piace lo spazio tra Program e Files.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    ho corretto quell'errore però ora mi dice:
    Errore: impossibile trovare o caricare la classe principale com.java8.mod18.test.Rubrica
    com.java8.mod18.test è il nome del package dove è contenuta la classe con il main che è Rubrica.

    non capisco perchè mi da quell'errore.
    Ultima modifica di newutente; 27-01-2015 a 13:29

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    EDIT

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'errore non è nello spazio, perchè se la cartella si chiama "Program Files", non puoi far finta che si chiami in un altro modo.
    Il problema è che lo spazio è un carattere "speciale", di conseguenza, se un percorso ha al suo interno tale carattere, allora va adottata una "contromisura". E la contromisura consiste nello specificare il percorso tra virgolette. Nel tuo caso, quindi, tutto quello che viene dopo il "-cp" va messo tra virgolette:

    codice:
    java -cp ".;C:\Program Files\Java\jdk1.8.0_25\db\lib\derby.jar" com.java8.mod18.test.Rubrica
    Così dovrebbe andare.

    Inoltre, se il tuo programma è dentro ad un file JAR, sempre nel parametro "-cp" va specificato anche il JAR dell'applicazione...

    PS: cosa c'entra il titolo della discussione "JDBC" con il tuo problema (che riguarda, eventualmente, il classpath)? Il titolo della discussione deve dare un'idea del contenuto della discussione (il problema riscontrato), non dell'esercizio sul quale stai lavorando. Sistemo io.


    Ciao.
    Ultima modifica di LeleFT; 27-01-2015 a 14:11
    "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

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    L'errore non è nello spazio, perchè se la cartella si chiama "Program Files", non puoi far finta che si chiami in un altro modo.
    Il problema è che lo spazio è un carattere "speciale", di conseguenza, se un percorso ha al suo interno tale carattere, allora va adottata una "contromisura". E la contromisura consiste nello specificare il percorso tra virgolette. Nel tuo caso, quindi, tutto quello che viene dopo il "-cp" va messo tra virgolette:

    codice:
    java -cp ".;C:\Program Files\Java\jdk1.8.0_25\db\lib\derby.jar" com.java8.mod18.test.Rubrica
    Così dovrebbe andare.
    Ho messo le virgolette ma il problema è sempre lo stesso:
    Errore: impossibile trovare o caricare la classe principale com.java8.mod18.test.Rubrica


    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Inoltre, se il tuo programma è dentro ad un file JAR, sempre nel parametro "-cp" va specificato anche il JAR dell'applicazione...
    no, il mio programma è normalmente dentro il workspace creato da Eclipse e tramite questo programma voglio utilizzare il Java DB per creare una tabella (una rubrica telefonica) con all'interno diverse tuple che vado ad inserire dinamicamente proprio tramite il mio programma.

    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    PS: cosa c'entra il titolo della discussione "JDBC" con il tuo problema (che riguarda, eventualmente, il classpath)? Il titolo della discussione deve dare un'idea del contenuto della discussione (il problema riscontrato), non dell'esercizio sul quale stai lavorando. Sistemo io.
    si scusa, ho sbagliato.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Alla luce di questo tramite riga di comando mi sono posizionato all'interno della cartella del mio progetto

    Specifica per bene DOVE ti sei spostato.
    L'errore che hai postato sta a significare che non viene trovata la classe Rubrica, che dovrebbe trovarsi dentro alla directory "com/java8/mod18/test". Ciò significa che, dal punto in cui sei, deve esistere una directory chiamata "com", all'interno della quale deve esistere una directory chiamata "java8", all'interno della quale deve esistere una directory chiamata "mod18" all'interno della quale deve esistere una directory chiamata "test" e all'interno di questa deve esistere il file Rubrica.class

    Da quel poco che conosco Eclipse, la compilazione viene effettuata dentro la directory "bin" che c'è all'interno della cartella del progetto. Tu, dove sei posizionato?

    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    effettivamente l'errore era proprio quello, avevo sbagliato la cartella nella quale mi ero posizionato (ero nella cartella src dei sorgenti e non in quella bin dei .class).
    Viene eseguita l'applicazione e questo penso sia normale visto che tramite quella riga inserita sto dicendo all'applicazione da dove andare a prendere quello che gli serve (derby.jar).
    Ora però ho un altro problema, dopo aver fatto puntare il CLASSPATH dovrei utilizzare Java DB come database embedded e per fare questo ho scritto questo comando:
    java -jar runDerby.jar ij
    però mi esce questo errore:
    Error enable to access jarfile runDerby.jar
    visto che la cosa non mi convinceva, e il manuale specifica il file derbyrun.jar (e non runDerby.jar che non esiste), ho provato il comando sostituendo runDerby.jar con derbyrun.jar ma l'errore è sempre lo stesso.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    nessuno sa come posso fare?

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sinceramente non so cosa sia runDerby.jar.
    Io, per usare Derby (JavaDB) ho due soli file: derby.jar e derbytools.jar (più, eventualmente, derbyLocale_it.jar per i messaggi localizzati).

    Per usare IJ, uso questo da riga di comando:

    codice:
    java -cp derby.jar;derbytools.jar org.apache.derby.tools.ij

    Ovviamente in classpath aggiungo anche altri JAR se mi servono... quelli elencati nell'esempio sono il minimo indispensabile per far andare Derby.


    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.