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

    Eseguire classi dalla shell

    Salve a tutti. Sono nuovo del forum. Non riesco ad eseguire file .class dalla shell di windows. Le variabili d'ambiente path e classpath sono impostate correttamente.
    Digitando: java -version
    mi vengono fornite le informazioni corrette, quindi java è istallato correttamente.
    Digitando: javac mioFile.java
    anche la compilazione avviene correttamente.
    Digitando: java mioFile
    mi dice: "Errore: impossibile trovare o caricare la classe principale mioFile".

    Il classpath è impostato a C:\workspace. Dentro tale directory ci sono tutti i java project che da eclipse funzionano e vengono eseguiti correttamente. Il problema è se provo ad eseguirli con la shell. Ho fatto diversi tentativi di settaggio del classpath, addirittura settandolo al package contente mioFile.class.
    Ho provato persino ad eseguire il mio file dalla cartella jdk dove risiede java.exe ma dà lo stesso risultato.

    Qualcuno può aiutarmi??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Dovresti posizionarti nella cartella in cui c'è mioFile.class e lì dare il comando java mioFile
    A meno che non ci siano i package di mezzo: in questo caso ti posizione nel parent del package base e da lì dai java mio.package.mioFile
    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
    Ovviamente mi porto sempre nella cartella dove è posizionato il file prima di lanciare il comando. Non va comunque

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    'spetta, ora ho letto meglio. La variabile d'ambiente da toccare è PATH. Classpath lasciala perdere: se ti serve modificare il classpath puoi usare l'opzione -cp di java.exe.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Il path è impostato a: C:\Program Files\Java\jdk1.8.0\bin;
    In questo modo java viene trovato, sia digitando java sulla shell, sia eseguendo classi da eclipse o netbeans.
    Come dovrei procedere??

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da leo_amerise Visualizza il messaggio
    Il path è impostato a: C:\Program Files\Java\jdk1.8.0\bin;
    In questo modo java viene trovato, sia digitando java sulla shell, sia eseguendo classi da eclipse o netbeans.
    Come dovrei procedere??
    L'unica spiegazione è che ci siano di mezzo di package e che tu non sia posizionato correttamente.

    Non sapendo nulla della classe "mioFile", stiamo andando a tentoni.

    Puoi darci le seguenti informazioni?

    1) DOVE è il file .java e come si chiama
    2) DA DOVE stai eseguendo
    3) Il codice sorgente (tutto) della classe java


    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

  7. #7
    Il mio è un problema generico, che mi succede con ogni file .class (eseguito correttamente invece con eclipse), ovunque esso sia posizionato. Comunque posto un esempio:

    In C:\workspace\prova\pack c'è il file Ciao.java:

    package pack;
    public class Ciao {
    public static void main(String[] args) {
    System.out.println("ciao mondo!");
    }
    }

    Valore del classpath: .;C:\workspace;
    Valore del path: C:\Program Files\Java\jdk1.8.0\bin;

    Dalla shell mi porto nella directory C:\workspace\prova\pack. Lancio il comando "javac Ciao.java" e mi viene così creato Ciao.class.
    Lancio il comando "java Ciao" e mi dice: "Errore: impossibile trovare o caricare la classe principale Ciao.java".

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    java pack.Ciao

    E ti devi posizionare nella cartella che contiene pack
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    E ti devi posizionare nella cartella che contiene pack
    Quoto e sottolineo: NON devi essere posizionato dentro alla cartella "pack", ma fuori.

    Quando si ha a che fare con i package (e se guardi la prima riga di codice della tua classe ci trovi scritto package) si deve essere posizionati fuori dal package base (quindi fuori dalla prima cartella) ed usare il nome completamente qualificato della classe.

    Il package di una classe è una stringa di nomi separati dal punto, oppure un nome unico. Ciascun nome corrisponde al nome di una directory.


    codice:
    package it.prova.classi;
    
    public class MiaClasse {
       ...
    }

    Denota una classe che si chiama "MiaClasse", che sta dentro al package "classi", il quale sta dentro al package "prova", il quale sta dentro al package "it". Quindi, c'è una cartella chiamata "it", con dentro una cartella chiamata "prova", con dentro una cartella chiamata "classi" con dentro il file MiaClasse.class.

    Per avviare la classe "MiaClasse" bisogna essere fuori dalla cartella "it" (root del package) e dare il seguente comando:


    codice:
    java it.prova.classi.MiaClasse

    it.prova.classi.MiaClasse è il fully-qualified name (nome completamente qualificato) della classe "MiaClasse".



    Ciao.
    Ultima modifica di LeleFT; 17-04-2014 a 17:28
    "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

  10. #10
    Ora mi funziona. Grazie mille

Tag per questa discussione

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.