2013-03-08 18 views
12

Sul mio computer di sviluppo devo sempre installare Java 6 e Java 7 e devo installare ciascun JDK in entrambi, la versione a 32 e 64 bit, per il test scopi. Dato che la frequenza degli aggiornamenti di Java sembra essere sempre più ridicola (due volte a settimana ormai?) Ogni aggiornamento richiede di annullare e quindi reinstallare i jDK . Quindi questo sta diventando davvero piuttosto fastidioso e mi piacerebbe quindi scrivere l'intero processo.Come installare Java JDK in una directory specifica su Windows

Il mio problema è, che per default ogni versione JDK installa in una directory-path che contiene l'aggiornamento numero (default: "C: \ Program Files \ Java \ jdk1.6.0_ < update-nr > \") . Per evitare di dover adattare tonnellate di script di build, spoglio sempre manualmente "_ < update-nr >" dal percorso di installazione e installo sempre nello stesso "C: \ Programmi \ Java \ jdk1.6.0" o "C: \ Programmi \ Java \ jdk1.7.0", risp., Per le versioni a 64 bit e in C: \ Programmi (x86) \ Java \ jdk1.6.0 "o" C: \ Programmi (x86) \ Java \ jdk1.7.0" , rispettivamente, per le versioni a 32 bit

Mentre ho scoperto, come specificare la directory di installazione per un programma di installazione di JRE (cioè il runtime Java):..

<jre-installfile>.exe [/s] [INSTALLDIR=<drive>:\<JRE_install_path>] 
    [STATIC=1] [WEB_JAVA=0/1] [WEB_JAVA_SECURITY_LEVEL=VH/H/M/L] 

Non ho ancora trovato una descrizione simile a come specificare la directory di installazione per il programma di installazione JDK.

Qualcuno sa se e in che modo è possibile specificare il percorso di installazione per il programma di installazione JDK, in modo che sia possibile indirizzare un'installazione JDK invisibile in una directory di installazione specifica?

+3

* "Sul mio computer di sviluppo devo sempre installare Java 6 e Java 7 e devo installare ogni JDK" * Direi che ti stai sbagliando. Perché pensi *** hai bisogno di installare due versioni dell'SDK? Quali benefici o abilità fornisce? BTW - lascia i segnali. dalle domande: sono rumori. –

+0

@AndrewThompson "* Devo installare ciascun JDK in entrambi, la versione a 32 e 64 bit, ** a scopo di test ***" – assylias

+3

@assylias My bad. -- OK. Non sono necessari due JDK, ma un JDK (per la compilazione) e due JRE (per il test). –

risposta

1

Ho appena trovato questo articolo durante la ricerca ... specifica un parametro per INSTALLDIR.

http://makeitfaster.wordpress.com/2011/03/25/java-jdk-silent-install-on-windows/

jdk-7u2-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature" INSTALLDIR="%CD%\jdk7u2" 

io purtroppo avevo già installato sulla mia macchina dev, quindi non ho potuto testare ...

+0

Ahimè, non sembra funzionare. Quando si chiama la riga di comando come mostrato nell'articolo di riferimento, ottengo sempre un popup di Windows Installer che apparentemente tenta di insegnarmi, che ho specificato alcune opzioni erroneamente. Ma le opzioni elencate si riferiscono a.file msi (che presumibilmente è contenuto in jdk.exe, ma che non è direttamente disponibile durante l'esecuzione del comando ...). – mmo

1

Prova: jdk-7u2-windows-i586.exe/s INSTALLDIR = \ "C: \ Programmi \ JAVA \ JDK \"

+0

Questo è lo stesso suggerimento di cui sopra e - come ho già scritto nel commento ad esso - non funziona ma fa apparire qualche finestra di errore dell'installer MSI ... – mmo

1

Ho appena scoperto una regressione nel programma di installazione JDK7 che fa sì che ignori INSTALLDIR. L'ultima versione corretta è l'aggiornamento 21.

Ho archiviato un bug report e ti farò sapere una volta che Oracle risponde.

UPDATE: Si è verificato che ciò è stato causato da un'installazione JDK corrotta (incompleta). Una volta disinstallata questa versione (Aggiungi/Rimuovi programmi) la nuova installazione è andata bene.

+0

Con l'aggiornamento 7u51 ora non funziona più con il JRE-installazione. Entrambi, il programma di installazione JRE e JDK, quando avviato tramite riga di comando utilizzando .exe/s INSTALLDIR = "

" viene visualizzata solo una finestra di dialogo errore msi-installer ... :-( – mmo

+0

' .exe/passivo INSTALLDIR ="

"' funziona per me con 7u79 – Knyri

0

EDIT - modo più semplice

Execute jdk-7u60-windows-x64.exe /passive /log install.log INSTALLDIR:c:\pippo

Opere con 7u45 e 7u60

risposta VECCHIO

L'exe contiene il programma di installazione MSI.Per estrarre è (di sicuro ci sono metodi più eleganti, ma so solo questo)

  1. eseguire il file EXE manualmente - è necessario farlo solo la prima volta, per convertirlo in un MSI
  2. Grab MSI (e tutti i file other.cab) da C: \ Users \ AppData \ LocalLow \ Sun \ Java \ jdx.xy \ jdk.xyzmsi
  3. corsa msiexec /i jdkx.y.z.msi /passive INSTALLDIR:c:\pippo
1

Un approccio per evitare di riscrivere le directory in gli script è utilizzare i collegamenti simbolici (giunzioni su NTFS). Per prima cosa scaricare l'utilità di junction da SysInternals: http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx quindi decomprimere, copiare in una directory sul PATH ed eseguire una volta per accettare la licenza.

Quindi è possibile creare link simbolici facilmente: junction "C:\Program Files\Java\jdk1.6.0" "C:\Program Files\Java\jdk1.6.0_37" junction "C:\Program Files (x86)\Java\jdk1.6.0" "C:\Program Files (x86)\Java\jdk1.6.0_37"

Per eliminare un po 'di link simbolico: junction -d "C:\Program Files\Java\jdk1.6.0"

È inoltre possibile utilizzare mklink (http://technet.microsoft.com/en-us/library/cc753194.aspx) invece (e del per la rimozione), ma io preferisco la semplicità e la chiarezza del giunzione.

+0

+1 per l'utilizzo di giunzioni (punti di analisi) su Windows, lo faccio con le mie versioni Ruby e Python e semplici file batch per la gestione delle versioni .. Non abbastanza persone sanno che esistono su Windows .. – wasatchwizard

0

Questo è il modo in cui funziona per me per JDK_7u55. Ho optato per la JRE installata troppo:

comandi PowerShell

$strJavaInstallExe=<Your JDK executable> 
$strJavaInstallDir=<The directory you want the JDK and JRE to install to> 

$cmdInstallJava=$strJavaInstallExe+' /passive /log "'+$strJavaInstallDir+'\install.log" ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR="'+$strJavaInstallDir+'" INSTALLDIRPUBJRE="'+$strJavaInstallDir+'"' 

Invoke-Expression $cmdInstallJava 

Spero che questo aiuti!

11

ho potuto installare con successo entrambe le versioni x64 e x86 di JDK 8 aggiornamento 60 tra cui un JRE pubblico con questi comandi:

Qui JDK 1.8.60 (x86) con il codice sorgente sta per C:\Java\x86\jdk1.8.0_60 e JRE a C:\Java\x86\jre1.8.0_60:

jdk-8u60-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR=C:\Java\x86\jdk1.8.0_60 /INSTALLDIRPUBJRE=C:\Java\x86\jre1.8.0_60 

In modo simile, JDK 1.8.60 (x64) con il codice sorgente sta per C:\Java\x64\jdk1.8.0_60 e JRE C:\Java\x64\jre1.8.0_60:

jdk-8u60-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature" INSTALLDIR=C:\Java\x64\jdk1.8.0_60 /INSTALLDIRPUBJRE=C:\Java\x64\jre1.8.0_60 

Vedere Oracle JRE installer options

+1

JDK 8 Installazione invisibile all'utente http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_jdk_install.html#CHDHHBDD – SimplyInk