Installazione ambiente Java in Windows

java

Nel precedente tutorial (La differenza tra Java Runtime Edition (JRE) e Java Development Kit (JDK)) abbiamo visto la differenza che intercorre tra JRE e JDK, dopo aver scelto quale ambiente vogliamo utilizzare, vediamo come installare l’ambiente e come configurare le variabili d’ambiente sotto il S.O. Windows.

Supponiamo di voler installare l’ambiente JDK, in quanto vogliamo anche poter sviluppare in Java, l’ultima versione dell’ambiente è disponibile all’indirizzo:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

scarichiamo la versione Java SE (standard edition, per il momento non siamo interessati allo sviluppo enterprise) e la installiamo (si tratta di un file .exe da lanciare disponibile sia per piattaforma a 32 bit denominata x86 o a 64 bit denominata x64) nel percorso di default indicatoci durante la procedura di installazione (tipicamente C:\Programmi\Java).

Una volta installata dobbiamo settare due variabili d’ambiente in Windows. Lo facciamo cliccando su Start -> Pannello di controllo e poi facendo doppio click sulla icona Sistema, nel pannello che si aprirà, ci posizioniamo sul tab Avanzate, come mostrato in figura:

Apriamo il tab Avanzate del pannello Sistema

dopodichè clicchiamo su Variabili d’ambiente:

In questo pannello possiamo definire le variabili d'ambiente del S.O. Windows

qui possiamo creare delle variabili per l’utente con cui siamo loggati(quindi valgono solo per l’utente corrente) o di Sistema (che valgono per tutti gli utenti del PC). Supponiamo di cliccare su nuovo per l’utente corrente, creiamo una variabile JAVA_HOME e settiamo come valore il percorso della cartella in cui è stata installata la JDK (nel mio caso ho installato la versione 1.7.0 di conseguenza inserisco il path C:\Programmi\Java\jdk1.7.0), tale percorso per essere valido dovrà contenere la bin.

Ora dobbiamo cercare la variabile Path (e non crearla col tasto Nuovo!) all’interno dell’elenco delle variabili di Sistema ed aggiungere il percorso dove si trovano gli eseguibili Java (in altre parole la cartella bin). La variabile Path serve al S.O. per capire dove andare a cercare un comando che viene invocato dall’utente senza che egli ne specifichi il path per intero, ad esempio potremo utilizzare direttamente il comando java e javac all’interno della console Windows (la cmd.exe) senza dover specificare il path per intero (C:\Programmi\Java\jdk1.7.0\bin\java o C:\Programmi\Java\jdk1.7.0\bin\javac).

Trovata la variabile facciamo doppio click su di essa e ci poniamo alla fine della stringa dei valori che compongono il valore della variabile, aggiungiamo un punto e virgola “;” se non c’è e inseriamo la definizione del path Java (C:\Programmi\Java\jdk1.7.0\bin oppure %JAVA_HOME%\bin).

Inseriamo la definizione del path Java al termine della stringa di valori che è contenuta nel campo Valore Variabile

A questo punto verifichiamo che la procedura sia corretta aprendo una console Dos, cliccando su Start -> Esegui e digitando il comando cmd:

Apriamo una console Dos

digitiamo poi il comando:

java -version

otteniamo un output del tipo:

java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)

Se invece il terminale risponde: “java non è riconosciuto come comando….” significa che le variabili di ambiente non sono state settate correttamente.

13 Responses to Installazione ambiente Java in Windows

  1. Treize scrive:

    Ho scaricato l’ultimissima versione di JDK, ho settato le variabili d’ambiente come descritto e su CMD all’interrogazione Java -version la risposta è giusta e completa, nondimeno mi è impossibile la prima parte dell’esercizio HelloWorld per la solita risposta “comando non riconosciuto…ecc.! Ho caricato, ricaricato, settato e risettato ma..niente.
    Che posso fare?
    Grazie

    Sistema Windows7 32bit
    Processore i7

    • angeloonline scrive:

      Ciao, probabilmente hai scaricato la JRE e non il JDK per cui viene riconosciuto il comando java ma non quello javac, lancia il comando javac -version e vedi se viene riconosciuto.

      • Treize scrive:

        Il programma che ho scaricato è il JDK1.7.0_51 e l’interrogazione javac -version risponde correttamente.
        Unisco il testo copiato del mio “cmd-set”:

        C:\Users\User>set
        ALLUSERSPROFILE=C:\ProgramData
        APPDATA=C:\Users\User\AppData\Roaming
        CLASSPATH=.;
        CommonProgramFiles=C:\Program Files\Common Files
        COMPUTERNAME=USER-PC
        ComSpec=C:\Windows\system32\cmd.exe
        FP_NO_HOST_CHECK=NO
        HOMEDRIVE=C:
        HOMEPATH=\Users\User
        LOCALAPPDATA=C:\Users\User\AppData\Local
        LOGONSERVER=\\USER-PC
        NUMBER_OF_PROCESSORS=8
        OS=Windows_NT
        Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ZipGenius 6\;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Windows Live\Shared;C:\Program Files\Java\jdk1.7.0_51\bin
        PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
        PROCESSOR_ARCHITECTURE=x86
        PROCESSOR_IDENTIFIER=x86 Family 6 Model 26 Stepping 5, GenuineIntel
        PROCESSOR_LEVEL=6
        PROCESSOR_REVISION=1a05
        ProgramData=C:\ProgramData
        ProgramFiles=C:\Program Files
        PROMPT=$P$G
        PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
        PUBLIC=C:\Users\Public
        QTJAVA=C:\Program Files\Java\jre6\lib\ext\QTJava.zip
        SESSIONNAME=Console
        SystemDrive=C:
        SystemRoot=C:\Windows
        TEMP=C:\Users\User\AppData\Local\Temp
        TMP=C:\Users\User\AppData\Local\Temp
        USERDOMAIN=User-PC
        USERNAME=User
        USERPROFILE=C:\Users\User
        windir=C:\Windows

        C:\Users\User>C:\esercizi\javac HelloWorld.java
        “C:\esercizi\javac” non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.

        Grazie per i consigli
        Treize

        • angeloonline scrive:

          Visto che hai inserito correttamente il percorso della JVM nella variabile d’ambiente di Windows Path, devi dare solo il comando javac:
          javac HelloWorld.java

  2. Treize scrive:

    Fatto di nuovo secondo consiglio ecco il risultato:

    C:\Users\User>C:\esercizi\javac HelloWorld.java
    “C:\esercizi\javac” non è riconosciuto come comando interno o esterno,
    un programma eseguibile o un file batch.

    Divento matto…
    Aiuto!

  3. Treize scrive:

    Perche il file HelloWord.java è nella cartella C:\esercizi\
    Ho provato praticamente tutte le forme di interrogazione:
    con e senza C: ,con e senza\esercizi…ma finora niente!
    Devo provare a mettere il file da qualche altra parte?
    Grazie

  4. Treize scrive:

    Ha funzionato(in parte)!! Con l’istruzione “javac C:\esercizi\HelloWorld.java” si è creato il file HelloWorld.class nella cartella \esercizi , anche se a schermo CMD non mi è apparso nulla.
    Ora come si richiama il file .class?
    Ho fatto vari tentativi seguendo il manuale con l’istruzione java ma…”impossibile trovare la classe principale…”
    Grande..ti ringrazio!

    • angeloonline scrive:

      Devi dare il comando “java HelloWorld” senza il suffisso .class
      Ricorda che la classe deve contenere il metodo main.

  5. Treize scrive:

    Questo è il mio file HelloWord.java:

    public class HelloWorld {

    public static void main(String[] args) {
    System.out.println(“Hello World”);
    }
    }

    che è già stato compilato in HelloWord.class

    Questo è quello che succede se lo richiamo

    C:\Users\User>java HelloWorld
    Exception in thread “main” java.lang.ClassFormatError: Truncated class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

    Ho provato anche a richiamarlo seguendo il percorso che avevo usato per javac:
    >java C:\esercizi\HelloWorld

    che mi risponde “impossibile trovare o caricare la classe principale…..”

    Ora sono fermo a questo scoglio. Qual’è la soluzione?
    Grazie di tutto l’aiuto

    • angeloonline scrive:

      Quando ti da errore su “java HelloWorld” è perchè il file generato da javac è corrotto, non sò perchè questo avvenga, prova a cancellare il .class e a rigenerarlo.
      Per poter lanciare un file .class da un’altra directory devi usare l’opzione -cp (equivalente a -classpath che specifica la directory che contiene i file .class o .jar) per cui il comando è:
      java -cp C:\esercizi HelloWorld (C’è uno spazio tra la directory ed il nome del file)

  6. Treize scrive:

    Carissimo,
    ho trovato la strada! Mi sono spostato nella cartella C:\esercizi con il comando cd e lì java HelloWorld ha funzionato!!!
    Ti ringrazio per ora di tutti i tuoi consigli e del tempo che ti ho rubato.
    Grazie ancora.
    Treize

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Social Widgets powered by AB-WebLog.com.