Il richiamo di java tramite due diverse righe di comando implica due JVM differenti o due istanze separate della stessa JVM.Istanze di JVM
risposta
JVM è Java Virtual Machine, uno spazio di memoria in cui sono condivise le classi (codice) vengono caricati e gli oggetti (dati). JVM è equivalente a un processo del sistema operativo.
Quando si digita java...
nella riga di comando si esegue un processo indipendente che carica le classi Java in memoria, le classi di base da Java e le proprie (dai file .class o .jar che si indicano).
altro comando java...
caricherà un processo differente con la propria memoria e caricare classi da sola.
Confusione parola di istanza: quando si pronuncia "due istanze della stessa JVM". È normale dire un'istanza di una JVM a un processo separato, ovvero, a una JVM indipendente caricata. Se stai dicendo: due processi eseguono JVM 1.5, OK, è la stessa JVM nel senso che è la stessa versione ma sono processi diversi, "istanze" diverse, indipendenti in tutti i sensi.
Confusione webapp: Una webapp (ad esempio) è semplicemente un insieme di classi e oggetti istanziati, che partecipano a un URL in un server Web. Puoi avviare Tomcat con 10 app diverse, ovvero 10 diversi gruppi di classi e oggetti, ciascuno dei quali partecipa a richieste diverse, ma in realtà condividono lo stesso spazio di memoria (processo del sistema operativo). Una webapp non può toccare altri oggetti webapp perché nessuno gli dà un riferimento agli altri oggetti (e le classi sono in qualche modo nascoste ma questa è un'altra storia chiamata: caricamento in classe).
Qual è la differenza nella tua domanda? Direi: due diverse istanze JVM. :)
Ogni esecuzione del comando java
fa richiamare una nuova istanza JVM. L'applicazione java in esecuzione può eseguire nuovi thread Java (come fa Tomcat con le applicazioni Web).
Due JVM separate. È possibile eseguire molte cose all'interno della stessa JVM (ad esempio 10 app Web pubblicate dalla stessa istanza Tomcat), ma è disponibile solo un comando java per avviare tomcat.
Se hai iniziato java.exe del Sole dalla loro versione JDK/JRE 1.6 dallo stesso percorso di origine per due volte, si otterrebbe due istanze JVM separati e distinti. Non ci sarebbe alcuna condivisione tra di loro a meno che non l'hai configurato tramite le tue applicazioni. Se si desidera eseguire due JVM diversi, è necessario avviare un java.exe di un tipo (ad esempio 1.5) da una posizione e un java.exe (versione 1.6) da un'altra.
- 1. NUMA awareness di JVM
- 2. Problemi di memoria JVM
- 3. Configurazione JVM di Eclipse
- 4. Blocca più jvm?
- 5. decisione di progettazione di jvm
- 6. Più istanze di assegni
- 7. Variabili di istanze costanti?
- 8. Istanze multiple di w3wp.exe
- 9. Istanze multiple Istanze radice per transazione
- 10. Librerie di precisione arbitrarie JVM
- 11. Implementazione Java di un ... JVM?
- 12. modello di impostazione jvm heap
- 13. Il motivo dell'esistenza di JVM
- 14. Classi di azioni tra JVM
- 15. Algoritmo di garbage collection JVM
- 16. Qual è la differenza tra JVM Spec, JVM Attuazione, JVM Runtime
- 17. Come trovare un'istanza di classe in una JVM in esecuzione
- 18. Costante di risultato Java, Object.hashCode() su tutte le JVM/sistemi?
- 19. Più istanze di iPhone Simulator?
- 20. Limita più istanze di un'applicazione
- 21. Estensione di classi e istanze
- 22. Mantenimento gratuito di istanze EC2
- 23. JPA: istanze parametrizzate di AttributeConverter
- 24. diverse istanze di classe singleton
- 25. concetto di macchina astratto di jvm
- 26. JVM core Discussioni
- 27. JVM parametri heap
- 28. inter jvm communication
- 29. JVM -XX: + argomento StringCache?
- 30. La JVM scambia l'heap?
Sai che entrambe le risposte sono equivalenti? – Riduidel
Dovresti essere più specifico. Che differenza c'è tra JVM e ciò che è uguale? Che differenza stai chiedendo? – splash